This is a patch release over LinqExtender 2.0. it contains following additions that will be useful while building custom provider.
- No need to Implement IQueryObject for your entity objects, it will be internally implemented.
- Full coverage of xml documentation and 0 warning state.
- Visual Basic error fix for AndAlso query condition.
- Added further test for MSSQL CE for OpenLinqToSql sample ORM
- Renamed Query<T>.PRocess to Query<T>.SelectItem that makes for sense for select expresions.
- Removed confusing OnError event, rather extender should throw exception.
- For select query, Bucket now contains readonly properties.
- Medium trust support for auto implemenation and settings injection.
- Removed static mappings for Bucket rather added IBucket parameter in Query<T> overrrides. For creating fluent Bucket use the following :
FluentBucket fluentBucket = FluentBucket.As(bucket);
- Both auto and manual Entity mapping via attribute and inheriting IQueryObject supported for medium trust enviroment.
- Define Extender settings via Fluent interface. Let's consider the following example taken from OpenLinqToSql sample ORM that comes with it.
.Property(x => x.Id).MarkAsUnique
.Property(x => x.Id).MapToAttribute("Bk_Id")
.Property(x => x.ShelveId).MapToAttribute("Shelve_Id")
.Property(x => x.Title).MapToAttribute("Bk_Title")
.Property(x => x.BookInfo).MarkToIgnore()
.InstantiateIn(this); // This is where the settings will be created.
Add these lines in your Query<T> containter's constructor. You can use this interface along with fixed attributes in entity object; in that case settings will be super posed. Extender will still support attribute based mappings for backward comptability.
Updated on June 9, 2009
Fix : For property hiding using new
keyword, extender should consider the lastest one not both.Again thanks for all your reviews and support