LINQ: Support for various forms of string comparison, support for conditional and coalesce expressions
String.Compare(string,string), String.Compare(string,string,bool), String.Compare(string,string,StringComparison), String.CompareOrdinal(string,string), String.CompareTo(string) are supported now. Conditional Expressions (c?t:f) and Coalesce Expressions (nullcheck ?? replace) are supported now.
LINQ: Support for argument collection.Contains(pc.field)
You can now express an efficient equality test for multiple values on the same persistent field with an argumentcollection.Contains(pc.field) expression. The pc.field can be a simple type (int, string, ...) as well as a reference to another persistent instance (order.Customer). Limitation: The primary key of the referenced persistent type must not be a composite identity.
LINQ: Allowing dynamic LINQ queries using server-side Count() under certain conditions.
Provide default option in Reverse Mapping to specify creation of Stored Procedures
User can instruct OA to create stored procedures for CRUD operations on tables that are reverse engineered. The default is to 'Use Dynamic SQL' User can change this to 'Create Stored Procedure' The Options dialog in the Reverse Mapping wizard now has the option to override this default
Projecting result sets returned from direct SQL usage throws an error when required discriminator column is not present.
When the required discriminator column is not present, an exception is thrown to prevent wrong type mappings.
The schema update generated ddl script should contain windows line breaks only.
The ddl script can be stored into a file. The file should be editable without errors in the visual studio.
Minimize security requirements for medium trust
Tested with trustLevel="Medium" (web.config) and assemblies in the Bin dir of the WebSite (nothing GAC'd).
IQueryResult should get a ToList() method
The query results needs a method to retrieve the complete data and gives it out as List ot List<T>.
Fixes
'Merge schema changes' does not handle renaming of Foreign Key constraint properly
A FK renaming is detected as an 'Delete constraint' and 'Add constraint'. The merge process adds a new reference field for 'Add constraint' but does not remove the existing reference field. This results in 2 reference fields for the same FK constraint.
Visual Studio command line compile call not working
To build a solution with the openaccess addin enabled on the command line with devenv.exe /Rebuild lets OpenAccess starting a popup with an error message.
Sql server default schema other than dbo is not working
If the database user has a different schema then dbo as default schema the schema migration does not detect the already available tables. Workaround: prepend all table names with dbo. in the mapping.
Enhancer not working with generic and non generic methods with same name
If a type defines 2 columns with the same name, one is generic and uses the generic type in the return type definition and the other is non generic, the enhancer throws a null reference exception.
Medium Trust: Writing config section handler reference with requirePermission="false"
The OpenAccess config sections handler throws an security exception if the defintion is not specified with requirePermission="false".
LINQ: Grouping does not work
var ext = scope.Extent<Country>(); var res = from c in ext where c.Top > 100 group c by c.Money; works now.
OpenAccessDataSource: Filtering and Ordering work as expected.