Release 2.1.0 (April 26, 2009)
NOTE: This version of DomainObjects has been extensively tested against
SQL Server 2005, but not against Oracle or MySQL.
- New: Enabled adding a relationship to multiple times to a class.
See unit test ChangeReferenceToAndSelectField().
- New: Changed accessibility of some methods/properties from internal to public
to support dynamic generation of criteria and queries.... read more
NOTE: This version of DomainObjects has been extensively tested against
SQL Server 2005, but not against Oracle or MySQL.
- New: Only fields that have been modified get written to the database in an
UPDATE statement. See unit test OnlyModifiedFieldsGetWrittenToDatabase().
If no fields are modified in an object, then an UPDATE statement is not
generated for that object.
- New: Overloaded && and || for Criteria. For usage examples, see unit
tests CriteriaOperatorAnd(), CriteriaOperatorOr(), CriteriaOperatorNesting()
and CriteriaOperatorPrecedence().... read more
- Implemented ability to specify an EXISTS or NOT EXISTS clause in via
Criteria.AddExists() and Criteria.AddNotExists(). For usage examples,
see the unit tests in CriteriaTests: AddExistsViaSubquery(),
AddNotExistsViaSubquery(), AddExistsViaCriteria(), AddNotExistsViaCriteria().
- Implemented ability to create a correlated subquery. For usage examples,
see the unit tests in CorrelatedSubqueryTests.... read more
- Implemented support for implicit conversion between a VARCHAR in the
database and a nullable enum in the middle tier.
- Implemented support for specifying a nullable type in the Repository.xml
file using the '?' notation. See the 'SecondCategory' FieldDescriptor in
the DomainObjects Repository.xml file for a usage example.
See http://domainobjects.sourceforge.net/Documentation/Api/SourceHtml/NullableTypesTests.cs.html#l_83... read more
Release 1.1.1 (December 17, 2006)
- Added ability to 'batch' insert your domain objects directly to the database via a select subquery.
At runtime DomainObjects generates a INSERT INTO...SELECT statement.
See the http://domainobjects.sourceforge.net/Documentation/Api/DomainObjects.Facade.Command.InsertByQuery\`2.html for an explanation
and http://domainobjects.sourceforge.net/Documentation/Api/SourceHtml/InsertByQueryTests.cs.html#l_8 for a code example.... read more
Release 1.1.0 (December 11, 2006)
- Note: the new significant features of 'Prefetching' and 'Object Graph Consistency'
explained below warrant incrementing the minor version of DomainObjects.
- Added support for Prefetching related objects in an object graph rather
than lazy loading them.
See http://domainobjects.sourceforge.net/Documentation/Api/DomainObjects.Facade.Command.Query.AddPrefetch.html
for an explanation and the Prefetch unit tests at
http://domainobjects.sourceforge.net/Documentation/Api/SourceHtml/PrefetchTests.cs.html#l_32
for code examples.... read more
Release 1.0.2 (September 22, 2006)
- All the Add* methods of the Criteria class return the current Criteria
instance so its easier to build "inline" Criterias
(for a usage example see QueryTests.InlineCriteria())
- Fixed bug [ 1532045 ] Old version of object retrieved by transaction.
- Fixed bug [ 1531977 ] Database or object transaction cannot be retried.
- Fixed bug [ 1532022 ] Exception while aborting transaction.... read more
Release 1.0.1 (July 17, 2006)
- Implemented data provider for Oracle 10g. All DomainObjects unit tests
now successfully pass against Oracle 10g. (Note that the SQL syntax generated
by this provider is also compatible with Oracle 9i but not 8)
- Added ability to 'update by criteria' to perform batch updates directly
against the database. (feature request [ 1521323 ] Batch Update by Criteria)... read more
This is the initial release of DomainObjects for .NET 2 (June 26, 2006)
FEATURES:
Queries
- Strongly-typed, IntelliSense(tm) supported object queries
- Queries are made against persistable objects rather than directly against the database tables. Results are returned as a strongly typed persistable object or list of persistable objects
- DataSet or 'report' query support. An arbitrary set of columns can be retrieved from a persistable object and/or its related objects. Results are returned in a DataSet
- Design-time declaration and runtime generation of left, right, full outer joins and cross joins
- Strongly-typed support for SQL SELECT expressions: top, union, union all, group by, having, order by, column aliases, etc.
- Strongly-typed support for SQL functions: AVG, CASE, COUNT, DATEDIFF, DATEPART, GETDATE, MAX, SUM, etc.
- Support for 'polymorphic' queries: when a base-type is queried, sub-types are also queried and returned. ... read more