<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://www.codeplex.com/rss.xsl"?><rss version="2.0"><channel><title>LINQExtender</title><link>http://www.codeplex.com/LinqExtender/Project/ProjectRss.aspx</link><description>LinqExtender is a toolkit for creating custom LINQ providers without knowing anything of how expression is parsed or processed and focusing on only the business logic. You just need to extend its q...</description><item><title>Created Issue: Support for OR in Where expression</title><link>http://www.codeplex.com/LINQPF/WorkItem/View.aspx?WorkItemId=3429</link><description>The multiple where clause improvement is great. Even better would be support for OR in the where clause - if I understand it correctly it only supports AND currently.&lt;br /&gt;</description><author>theblacklabrador</author><pubDate>Thu, 04 Dec 2008 20:05:50 GMT</pubDate><guid isPermaLink="false">Created Issue: Support for OR in Where expression 20081204080550P</guid></item><item><title>Commented Feature: Join support to LinqExtender</title><link>http://www.codeplex.com/LINQPF/WorkItem/View.aspx?WorkItemId=1401</link><description>Add a join of objects and property interface in LinqExtender.&lt;br /&gt;Comments: ** Comment from web user: smoldok ** &lt;p&gt;As I see it, a join is a subquery filtered by the first query value. So when the primary query is loading it have to execute a secondary query for each item.&lt;br /&gt;So maybe an event can be fired every time an item is added to the IModify and in that event the Process method is called for each child or maybe a new method similar to the Process but that receive the filter.&lt;br /&gt;&lt;/p&gt;</description><author>smoldok</author><pubDate>Wed, 03 Dec 2008 18:45:53 GMT</pubDate><guid isPermaLink="false">Commented Feature: Join support to LinqExtender 20081203064553P</guid></item><item><title>Commented Issue: QueryObjectBase and a IQueryObjectBase interface</title><link>http://www.codeplex.com/LINQPF/WorkItem/View.aspx?WorkItemId=3423</link><description>Hi, It is possible to change the QueryObjectBase class to be an interface and then have an abstract class that implement it and a QueryObjectBaseDefault a class that just derive from it with out any changes&amp;#63;&lt;br /&gt;&lt;br /&gt;I have my objects that already derive from a class and I can not change that, but I can add an interface and then implement each method of the interface calling the internal QueryObjectBaseDefault object.&lt;br /&gt;Also my objects have an internal way to identify the columns and I will like to not use attributes for that.&lt;br /&gt;If it is possible I will like to override the FillBucket method because I don&amp;#39;t want to use attributes, if bucket also implement interfaces an the bucket item too, then the overriding will be much easier.&lt;br /&gt;thanks.&lt;br /&gt;Comments: ** Comment from web user: smoldok ** &lt;p&gt;Answering you question about why I don&amp;#39;t need the attributes.&lt;br /&gt;I don&amp;#39;t need them because my class already has a way to return the columns names and PK items and&lt;br /&gt;will be more correct in my case to re use my class methods than add attributes.&lt;br /&gt;If everything is an interface and an implementing abstract class and default model class that will make the LinkqExtender more flexible. It will support the same functionality as today but if some one need to replace a little piece of code will be easy to do.&lt;/p&gt;</description><author>smoldok</author><pubDate>Wed, 03 Dec 2008 18:15:56 GMT</pubDate><guid isPermaLink="false">Commented Issue: QueryObjectBase and a IQueryObjectBase interface 20081203061556P</guid></item><item><title>New Post: QueryObjectBase and a IQueryObjectBase interface</title><link>http://www.codeplex.com/LinqExtender/Thread/View.aspx?ThreadId=41311</link><description>&lt;div style="line-height: normal;"&gt;This discussion has been copied to a work item. Click &lt;a href="http://www.codeplex.com/LinqExtender/WorkItem/View.aspx?WorkItemId=3423"&gt;here&lt;/a&gt; to go to the work item and continue the discussion.&lt;/div&gt;</description><author>mehfuzh</author><pubDate>Wed, 03 Dec 2008 17:46:50 GMT</pubDate><guid isPermaLink="false">New Post: QueryObjectBase and a IQueryObjectBase interface 20081203054650P</guid></item><item><title>Created Issue: QueryObjectBase and a IQueryObjectBase interface</title><link>http://www.codeplex.com/LINQPF/WorkItem/View.aspx?WorkItemId=3423</link><description>Hi, It is possible to change the QueryObjectBase class to be an interface and then have an abstract class that implement it and a QueryObjectBaseDefault a class that just derive from it with out any changes&amp;#63;&lt;br /&gt;&lt;br /&gt;I have my objects that already derive from a class and I can not change that, but I can add an interface and then implement each method of the interface calling the internal QueryObjectBaseDefault object.&lt;br /&gt;Also my objects have an internal way to identify the columns and I will like to not use attributes for that.&lt;br /&gt;If it is possible I will like to override the FillBucket method because I don&amp;#39;t want to use attributes, if bucket also implement interfaces an the bucket item too, then the overriding will be much easier.&lt;br /&gt;thanks.&lt;br /&gt;</description><author>mehfuzh</author><pubDate>Wed, 03 Dec 2008 17:46:50 GMT</pubDate><guid isPermaLink="false">Created Issue: QueryObjectBase and a IQueryObjectBase interface 20081203054650P</guid></item><item><title>New Post: QueryObjectBase and a IQueryObjectBase interface</title><link>http://www.codeplex.com/LinqExtender/Thread/View.aspx?ThreadId=41311</link><description>&lt;div style="line-height: normal;"&gt;I can convert it to IQueryObject but why you dont need attributes If you dont use them then by default it will take property names as BucketItem.Name. There are few attributes which are for modifying the behavior of the class and nothing else.  Of course there is one property that must be put on top of  one of the property that will be the unique item for your object so that any update to that object is tracked and backed to repository when you do db.submitChanges();&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Hope that helps,
&lt;/div&gt;</description><author>mehfuzh</author><pubDate>Wed, 03 Dec 2008 17:46:27 GMT</pubDate><guid isPermaLink="false">New Post: QueryObjectBase and a IQueryObjectBase interface 20081203054627P</guid></item><item><title>Commented Feature: Join support to LinqExtender</title><link>http://www.codeplex.com/LINQPF/WorkItem/View.aspx?WorkItemId=1401</link><description>Add a join of objects and property interface in LinqExtender.&lt;br /&gt;Comments: ** Comment from web user: mehfuzh ** &lt;p&gt;Not yet.. i am plannig two way  One is auto like LINQToFlickr like API where it will join for you on your behalf and will know on which key to join, Any Particular idea is greatly apreciated &amp;#33;&lt;/p&gt;</description><author>mehfuzh</author><pubDate>Wed, 03 Dec 2008 17:41:33 GMT</pubDate><guid isPermaLink="false">Commented Feature: Join support to LinqExtender 20081203054133P</guid></item><item><title>New Post: QueryObjectBase and a IQueryObjectBase interface</title><link>http://www.codeplex.com/LinqExtender/Thread/View.aspx?ThreadId=41311</link><description>&lt;div style="line-height: normal;"&gt;Hi, It is possible to change the QueryObjectBase class to be an interface and then have an abstract class that implement it and a QueryObjectBaseDefault a class that just derive from it with out any changes?&lt;br&gt;
&lt;br&gt;
I have my objects that already derive from a class and I can not change that, but I can add an interface and then implement each method of the interface calling the internal QueryObjectBaseDefault object.&lt;br&gt;
Also my objects have an internal way to identify the columns and I will like to not use attributes for that.&lt;br&gt;
If it is possible I will like to override the FillBucket method because I don't want to use attributes, if bucket also implement interfaces an the bucket item too, then the overriding will be much easier.&lt;br&gt;
thanks. 
&lt;/div&gt;</description><author>smoldok</author><pubDate>Tue, 02 Dec 2008 22:01:49 GMT</pubDate><guid isPermaLink="false">New Post: QueryObjectBase and a IQueryObjectBase interface 20081202100149P</guid></item><item><title>Commented Feature: Join support to LinqExtender</title><link>http://www.codeplex.com/LINQPF/WorkItem/View.aspx?WorkItemId=1401</link><description>Add a join of objects and property interface in LinqExtender.&lt;br /&gt;Comments: ** Comment from web user: smoldok ** &lt;p&gt;Hi, Is the Join already supported in the 1.4.x version&amp;#63;&lt;/p&gt;</description><author>smoldok</author><pubDate>Tue, 02 Dec 2008 21:42:44 GMT</pubDate><guid isPermaLink="false">Commented Feature: Join support to LinqExtender 20081202094244P</guid></item><item><title>Updated Release: LinqExtender (1.4) (Aug 11, 2008)</title><link>http://www.codeplex.com/LinqExtender/Release/ProjectReleases.aspx?ReleaseId=15962</link><description>&lt;div&gt;
&lt;b&gt;New Enhanced Object tracking service (OTS)&lt;/b&gt;&lt;br&gt; &lt;br&gt;A. Update Tracking&lt;br&gt; &lt;br&gt;Take this example &lt;br&gt; &lt;br&gt;Book book = (from book in context.Books&lt;br&gt;                  where book.Id = 1 ).Single();&lt;br&gt; &lt;br&gt;// now update a property &lt;br&gt;book.ISBN = &amp;quot;110&amp;quot;;&lt;br&gt;//then call&lt;br&gt;context.SubmitChanges();&lt;br&gt; &lt;br&gt;LinqExtender knows the object is updated and thus will call Query&amp;lt;T&amp;gt;.UpdateItem(Bucket). So, in your provider to support&lt;br&gt;object update you need to override the following&lt;br&gt;&lt;pre&gt;
protected bool UpdateItem(Bucket item)
{ 
    Bucket contains the updated property- value map
   
    //finally do a return , if true, then only the
    //collection will be updated or 
    //it will revert back to the old one and raise an OnError event.
    return true/false;   
}
&lt;/pre&gt; &lt;br&gt; &lt;br&gt;B. Get by Idenitty&lt;br&gt;&lt;pre&gt;
 
protected override T GetItem(Bucket item)
{
   T singleObject = GetItThoughUniqueValue(...);
   return singleObject;
}
 
&lt;/pre&gt; &lt;br&gt; &lt;br&gt;This will be called by the toolkit for queries like&lt;br&gt; &lt;br&gt;var query = from book in context.Books&lt;br&gt;where book.Id == 1&lt;br&gt;select book&lt;br&gt; &lt;br&gt;Book book = query.Single();&lt;br&gt; &lt;br&gt;Here, Id is a unique field defined by UniqueIdentifier attribute. This saves few if-elses in Query&amp;lt;T&amp;gt;.Process. when getting single unique item. If you are writting a provider that auto generates the query depending on Bucket properties, you can do that well with Quey&amp;lt;T&amp;gt;.Process and in that case you dont need override this for Identity calls, but if your building a serviced API like LINQToFlickr and you want your GetById and Search in differnent scope rather using IF-ELSE-THEN in Query&amp;lt;T&amp;gt;.Process , then it will be useful.&lt;br&gt; &lt;br&gt;C. Update with item add tracking&lt;br&gt;In query object for tracking new object you dont need to override the IsNew property of QueryObjectBase anymore to identify if an object is new or not.&lt;br&gt; &lt;br&gt;Finally, the return type of AddItem, UpdateItem, RemoveItem is changed from void to bool, which requires you to do success check and return a bit status , status := false will ensure the main query collection is not updated with user changes and will raise proper a OnError event.&lt;br&gt; &lt;br&gt;&lt;b&gt;Others&lt;/b&gt;&lt;br&gt;1. Use bucket.Items&lt;a href="http://www.codeplex.com/LinqExtender/Wiki/View.aspx?title=.."&gt;..&lt;/a&gt;.IsUniqe and bucket.UniqueItems to check for properties with UniqueIdentifierAttribute&lt;br&gt;2. Added OriginalEnityName attribute for &lt;i&gt;class&lt;/i&gt; like the OrignalFieldName for &lt;i&gt;propeties&lt;/i&gt;. If you have table name other than class name You can use this attribute to map it with original table name. &lt;br&gt;In that case bucket.Name == the attribute name. &lt;br&gt; &lt;br&gt;&lt;b&gt;Patch 1.4.1 update 23 Oct, 2008&lt;/b&gt;&lt;br&gt; &lt;br&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;Fixed Complex member access issue in orderby clause&lt;/li&gt;&lt;li&gt;Added Bucket.FindAttribute for queryting custom object attributes.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;Example&lt;br&gt;&lt;pre&gt;
DbTypeAttribute attribute = (DbTypeAttribute)item.FindAttribute(typeof(DbTypeAttribute));
&lt;/pre&gt; &lt;br&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;Added auto table creation (from config: executeDDL = true) for OpenLInqToSql sample ORM.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;</description><author>mehfuzh</author><pubDate>Thu, 23 Oct 2008 06:20:39 GMT</pubDate><guid isPermaLink="false">Updated Release: LinqExtender (1.4) (Aug 11, 2008) 20081023062039A</guid></item><item><title>Released: LinqExtender (1.4) (Aug 11, 2008)</title><link>http://www.codeplex.com/LinqExtender/Release/ProjectReleases.aspx?ReleaseId=15962</link><description>&lt;div&gt;
&lt;b&gt;New Enhanced Object tracking service (OTS)&lt;/b&gt;&lt;br&gt; &lt;br&gt;A. Update Tracking&lt;br&gt; &lt;br&gt;Take this example &lt;br&gt; &lt;br&gt;Book book = (from book in context.Books&lt;br&gt;                  where book.Id = 1 ).Single();&lt;br&gt; &lt;br&gt;// now update a property &lt;br&gt;book.ISBN = &amp;quot;110&amp;quot;;&lt;br&gt;//then call&lt;br&gt;context.SubmitChanges();&lt;br&gt; &lt;br&gt;LinqExtender knows the object is updated and thus will call Query&amp;lt;T&amp;gt;.UpdateItem(Bucket). So, in your provider to support&lt;br&gt;object update you need to override the following&lt;br&gt;&lt;pre&gt;
protected bool UpdateItem(Bucket item)
{ 
    Bucket contains the updated property- value map
   
    //finally do a return , if true, then only the
    //collection will be updated or 
    //it will revert back to the old one and raise an OnError event.
    return true/false;   
}
&lt;/pre&gt; &lt;br&gt; &lt;br&gt;B. Get by Idenitty&lt;br&gt;&lt;pre&gt;
 
protected override T GetItem(Bucket item)
{
   T singleObject = GetItThoughUniqueValue(...);
   return singleObject;
}
 
&lt;/pre&gt; &lt;br&gt; &lt;br&gt;This will be called by the toolkit for queries like&lt;br&gt; &lt;br&gt;var query = from book in context.Books&lt;br&gt;where book.Id == 1&lt;br&gt;select book&lt;br&gt; &lt;br&gt;Book book = query.Single();&lt;br&gt; &lt;br&gt;Here, Id is a unique field defined by UniqueIdentifier attribute. This saves few if-elses in Query&amp;lt;T&amp;gt;.Process. when getting single unique item. If you are writting a provider that auto generates the query depending on Bucket properties, you can do that well with Quey&amp;lt;T&amp;gt;.Process and in that case you dont need override this for Identity calls, but if your building a serviced API like LINQToFlickr and you want your GetById and Search in differnent scope rather using IF-ELSE-THEN in Query&amp;lt;T&amp;gt;.Process , then it will be useful.&lt;br&gt; &lt;br&gt;C. Update with item add tracking&lt;br&gt;In query object for tracking new object you dont need to override the IsNew property of QueryObjectBase anymore to identify if an object is new or not.&lt;br&gt; &lt;br&gt;Finally, the return type of AddItem, UpdateItem, RemoveItem is changed from void to bool, which requires you to do success check and return a bit status , status := false will ensure the main query collection is not updated with user changes and will raise proper a OnError event.&lt;br&gt; &lt;br&gt;&lt;b&gt;Others&lt;/b&gt;&lt;br&gt;1. Use bucket.Items&lt;a href="http://www.codeplex.com/LinqExtender/Wiki/View.aspx?title=.."&gt;..&lt;/a&gt;.IsUniqe and bucket.UniqueItems to check for properties with UniqueIdentifierAttribute&lt;br&gt;2. Added OriginalEnityName attribute for &lt;i&gt;class&lt;/i&gt; like the OrignalFieldName for &lt;i&gt;propeties&lt;/i&gt;. If you have table name other than class name You can use this attribute to map it with original table name. &lt;br&gt;In that case bucket.Name == the attribute name. &lt;br&gt; &lt;br&gt;&lt;b&gt;Patch 1.4.1 update 23 Oct, 2008&lt;/b&gt;&lt;br&gt; &lt;br&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;Fixed Complex member access issue in orderby clause&lt;/li&gt;&lt;li&gt;Added Bucket.FindAttribute for queryting custom object attributes.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;Example&lt;br&gt;&lt;pre&gt;
DbTypeAttribute attribute = (DbTypeAttribute)item.FindAttribute(typeof(DbTypeAttribute));
&lt;/pre&gt; &lt;br&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;Added auto table creation (from config: executeDDL = true) for OpenLInqToSql sample ORM.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;</description><author></author><pubDate>Thu, 23 Oct 2008 06:20:38 GMT</pubDate><guid isPermaLink="false">Released: LinqExtender (1.4) (Aug 11, 2008) 20081023062038A</guid></item><item><title>Updated Release: LinqExtender (1.4) (Aug 11, 2008)</title><link>http://www.codeplex.com/LinqExtender/Release/ProjectReleases.aspx?ReleaseId=15962</link><description>&lt;div&gt;
&lt;b&gt;New Enhanced Object tracking service (OTS)&lt;/b&gt;&lt;br&gt; &lt;br&gt;A. Update Tracking&lt;br&gt; &lt;br&gt;Take this example &lt;br&gt; &lt;br&gt;Book book = (from book in context.Books&lt;br&gt;                  where book.Id = 1 ).Single();&lt;br&gt; &lt;br&gt;// now update a property &lt;br&gt;book.ISBN = &amp;quot;110&amp;quot;;&lt;br&gt;//then call&lt;br&gt;context.SubmitChanges();&lt;br&gt; &lt;br&gt;LinqExtender knows the object is updated and thus will call Query&amp;lt;T&amp;gt;.UpdateItem(Bucket). So, in your provider to support&lt;br&gt;object update you need to override the following&lt;br&gt;&lt;pre&gt;
protected bool UpdateItem(Bucket item)
{ 
    Bucket contains the updated property- value map
   
    //finally do a return , if true, then only the
    //collection will be updated or 
    //it will revert back to the old one and raise an OnError event.
    return true/false;   
}
&lt;/pre&gt; &lt;br&gt; &lt;br&gt;B. Get by Idenitty&lt;br&gt;&lt;pre&gt;
 
protected override T GetItem(Bucket item)
{
   T singleObject = GetItThoughUniqueValue(...);
   return singleObject;
}
 
&lt;/pre&gt; &lt;br&gt; &lt;br&gt;This will be called by the toolkit for queries like&lt;br&gt; &lt;br&gt;var query = from book in context.Books&lt;br&gt;where book.Id == 1&lt;br&gt;select book&lt;br&gt; &lt;br&gt;Book book = query.Single();&lt;br&gt; &lt;br&gt;Here, Id is a unique field defined by UniqueIdentifier attribute. This saves few if-elses in Query&amp;lt;T&amp;gt;.Process. when getting single unique item. If you are writting a provider that auto generates the query depending on Bucket properties, you can do that well with Quey&amp;lt;T&amp;gt;.Process and in that case you dont need override this for Identity calls, but if your building a serviced API like LINQToFlickr and you want your GetById and Search in differnent scope rather using IF-ELSE-THEN in Query&amp;lt;T&amp;gt;.Process , then it will be useful.&lt;br&gt; &lt;br&gt;C. Update with item add tracking&lt;br&gt;In query object for tracking new object you dont need to override the IsNew property of QueryObjectBase anymore to identify if an object is new or not.&lt;br&gt; &lt;br&gt;Finally, the return type of AddItem, UpdateItem, RemoveItem is changed from void to bool, which requires you to do success check and return a bit status , status := false will ensure the main query collection is not updated with user changes and will raise proper a OnError event.&lt;br&gt; &lt;br&gt;&lt;b&gt;Others&lt;/b&gt;&lt;br&gt;1. Use bucket.Items&lt;a href="http://www.codeplex.com/LinqExtender/Wiki/View.aspx?title=.."&gt;..&lt;/a&gt;.IsUniqe and bucket.UniqueItems to check for properties with UniqueIdentifierAttribute&lt;br&gt;2. Added OriginalEnityName attribute for &lt;i&gt;class&lt;/i&gt; like the OrignalFieldName for &lt;i&gt;propeties&lt;/i&gt;. If you have table name other than class name You can use this attribute to map it with original table name. &lt;br&gt;In that case bucket.Name == the attribute name. &lt;br&gt; &lt;br&gt;&lt;b&gt;Patch 1.4.1 update 23 Oct, 2008&lt;/b&gt;&lt;br&gt; &lt;br&gt;Fixed Complex member access issue in orderby clause&lt;br&gt;Added Bucket.FindAttribute for queryting custom object attributes.&lt;br&gt;Example&lt;br&gt;&lt;pre&gt;
DbTypeAttribute attribute = (DbTypeAttribute)item.FindAttribute(typeof(DbTypeAttribute));
&lt;/pre&gt; &lt;br&gt;Added auto table creation (from config: executeDDL = true) for OpenLInqToSql sample ORM.&lt;br&gt;
&lt;/div&gt;</description><author>mehfuzh</author><pubDate>Thu, 23 Oct 2008 06:19:42 GMT</pubDate><guid isPermaLink="false">Updated Release: LinqExtender (1.4) (Aug 11, 2008) 20081023061942A</guid></item><item><title>Updated Release: LinqExtender (1.4) (Aug 11, 2008)</title><link>http://www.codeplex.com/LinqExtender/Release/ProjectReleases.aspx?ReleaseId=15962</link><description>&lt;div&gt;
&lt;b&gt;New Enhanced Object tracking service (OTS)&lt;/b&gt;&lt;br&gt; &lt;br&gt;A. Update Tracking&lt;br&gt; &lt;br&gt;Take this example &lt;br&gt; &lt;br&gt;Book book = (from book in context.Books&lt;br&gt;                  where book.Id = 1 ).Single();&lt;br&gt; &lt;br&gt;// now update a property &lt;br&gt;book.ISBN = &amp;quot;110&amp;quot;;&lt;br&gt;//then call&lt;br&gt;context.SubmitChanges();&lt;br&gt; &lt;br&gt;LinqExtender knows the object is updated and thus will call Query&amp;lt;T&amp;gt;.UpdateItem(Bucket). So, in your provider to support&lt;br&gt;object update you need to override the following&lt;br&gt;&lt;pre&gt;
protected bool UpdateItem(Bucket item)
{ 
    Bucket contains the updated property- value map
   
    //finally do a return , if true, then only the
    //collection will be updated or 
    //it will revert back to the old one and raise an OnError event.
    return true/false;   
}
&lt;/pre&gt; &lt;br&gt; &lt;br&gt;B. Get by Idenitty&lt;br&gt;&lt;pre&gt;
 
protected override T GetItem(Bucket item)
{
   T singleObject = GetItThoughUniqueValue(...);
   return singleObject;
}
 
&lt;/pre&gt; &lt;br&gt; &lt;br&gt;This will be called by the toolkit for queries like&lt;br&gt; &lt;br&gt;var query = from book in context.Books&lt;br&gt;where book.Id == 1&lt;br&gt;select book&lt;br&gt; &lt;br&gt;Book book = query.Single();&lt;br&gt; &lt;br&gt;Here, Id is a unique field defined by UniqueIdentifier attribute. This saves few if-elses in Query&amp;lt;T&amp;gt;.Process. when getting single unique item. If you are writting a provider that auto generates the query depending on Bucket properties, you can do that well with Quey&amp;lt;T&amp;gt;.Process and in that case you dont need override this for Identity calls, but if your building a serviced API like LINQToFlickr and you want your GetById and Search in differnent scope rather using IF-ELSE-THEN in Query&amp;lt;T&amp;gt;.Process , then it will be useful.&lt;br&gt; &lt;br&gt;C. Update with item add tracking&lt;br&gt;In query object for tracking new object you dont need to override the IsNew property of QueryObjectBase anymore to identify if an object is new or not.&lt;br&gt; &lt;br&gt;Finally, the return type of AddItem, UpdateItem, RemoveItem is changed from void to bool, which requires you to do success check and return a bit status , status := false will ensure the main query collection is not updated with user changes and will raise proper a OnError event.&lt;br&gt; &lt;br&gt;&lt;b&gt;Others&lt;/b&gt;&lt;br&gt;1. Use bucket.Items&lt;a href="http://www.codeplex.com/LinqExtender/Wiki/View.aspx?title=.."&gt;..&lt;/a&gt;.IsUniqe and bucket.UniqueItems to check for properties with UniqueIdentifierAttribute&lt;br&gt;2. Added OriginalEnityName attribute for &lt;i&gt;class&lt;/i&gt; like the OrignalFieldName for &lt;i&gt;propeties&lt;/i&gt;. If you have table name other than class name You can use this attribute to map it with original table name. &lt;br&gt;In that case bucket.Name == the attribute name. &lt;br&gt; &lt;br&gt;&lt;ul&gt;
&lt;li&gt;Patch update 23 Oct ,2008*&lt;/li&gt;
&lt;/ul&gt; &lt;br&gt;Fixed Complex member access issue in orderby clause&lt;br&gt;Added Bucket.FindAttribute for queryting custom object attributes.&lt;br&gt;Example&lt;br&gt;&lt;pre&gt;
DbTypeAttribute attribute = (DbTypeAttribute)item.FindAttribute(typeof(DbTypeAttribute));
&lt;/pre&gt; &lt;br&gt;Added auto table creation (from config: executeDDL = true) for OpenLInqToSql sample ORM.&lt;br&gt;
&lt;/div&gt;</description><author>mehfuzh</author><pubDate>Thu, 23 Oct 2008 06:17:14 GMT</pubDate><guid isPermaLink="false">Updated Release: LinqExtender (1.4) (Aug 11, 2008) 20081023061714A</guid></item><item><title>Source code checked in, #13333</title><link>http://www.codeplex.com/LinqExtender/SourceControl/ListDownloadableCommits.aspx</link><description>Updated the readme</description><author>mehfuzh</author><pubDate>Thu, 23 Oct 2008 05:59:46 GMT</pubDate><guid isPermaLink="false">Source code checked in, #13333 20081023055946A</guid></item><item><title>Source code checked in, #13332</title><link>http://www.codeplex.com/LinqExtender/SourceControl/ListDownloadableCommits.aspx</link><description>Createing a patch for upload in the release.</description><author>mehfuzh</author><pubDate>Thu, 23 Oct 2008 05:47:34 GMT</pubDate><guid isPermaLink="false">Source code checked in, #13332 20081023054734A</guid></item><item><title>Source code checked in, #12959</title><link>http://www.codeplex.com/LinqExtender/SourceControl/ListDownloadableCommits.aspx</link><description>More fix over prevoious commit.</description><author>mehfuzh</author><pubDate>Sun, 19 Oct 2008 19:53:45 GMT</pubDate><guid isPermaLink="false">Source code checked in, #12959 20081019075345P</guid></item><item><title>Source code checked in, #12957</title><link>http://www.codeplex.com/LinqExtender/SourceControl/ListDownloadableCommits.aspx</link><description>Fix&amp;#58; orderby can take complex memeber aceess arguments. like&amp;#58; orderby  order decending  &amp;#91; PhotoOrder  order &amp;#61; PhotoOrder.LastUpdated&amp;#93;</description><author>mehfuzh</author><pubDate>Sun, 19 Oct 2008 19:49:10 GMT</pubDate><guid isPermaLink="false">Source code checked in, #12957 20081019074910P</guid></item><item><title>Source code checked in, #12831</title><link>http://www.codeplex.com/LinqExtender/SourceControl/ListDownloadableCommits.aspx</link><description>fix &amp;#58; duplicate value problem caused by last changes</description><author>mehfuzh</author><pubDate>Wed, 15 Oct 2008 19:13:35 GMT</pubDate><guid isPermaLink="false">Source code checked in, #12831 20081015071335P</guid></item><item><title>Source code checked in, #12687</title><link>http://www.codeplex.com/LinqExtender/SourceControl/ListDownloadableCommits.aspx</link><description>Refactor for support multiple bucket in one instance, will be used for join</description><author>mehfuzh</author><pubDate>Sat, 04 Oct 2008 20:02:03 GMT</pubDate><guid isPermaLink="false">Source code checked in, #12687 20081004080203P</guid></item><item><title>Project License Changed</title><link>http://www.codeplex.com/LinqExtender/license?LicenseHistoryId=15368</link><description>Copyright &amp;#40;c&amp;#41; 2007-2008 LinqExtender Tookit Project&amp;#13;&amp;#10;&amp;#13;&amp;#10;Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files &amp;#40;the &amp;#34;Software&amp;#34;&amp;#41;, to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and&amp;#47;or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions&amp;#58;&amp;#13;&amp;#10;&amp;#13;&amp;#10;The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.&amp;#13;&amp;#10;&amp;#13;&amp;#10;THE SOFTWARE IS PROVIDED &amp;#34;AS IS&amp;#34;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</description><author></author><pubDate>Wed, 24 Sep 2008 11:36:08 GMT</pubDate><guid isPermaLink="false">Project License Changed 20080924113608A</guid></item></channel></rss>