LINQ2SQLExtensions extends LINQ to SQL (http://msdn.microsoft.com/en-gb/library/bb386976.aspx). The inherent weakness of LINQ to SQL is that it prescribes a model in which more than one object representing a single relational entity may exist. This is still true when using LINQ2SQLExtensions. However, LINQ2SQLExtensions enables a master/transient paradigm in which one master object exists per entity which is shared throughout the application. All changes are made to transient instances of the entity objects. Once a set of changes (CUD) is complete the EntityOperationRegister replays this change set on the master DataContext. This empowers developers to build richer event driven data layer components than are possible using LINQ to SQL directly.

I wrote LINQ2SQLExtensions when building a Greenfield WinForm3.5 Client/Server application, which is now in production. I also built a number of components that use LINQ2SQLExtensions to deliver a RAD toolset for building rich databound WinForm UI's. I intend to open source the entire toolset in due course.

.NET 3.5 SP1 includes an enhancement to LINQ to SQL whereby when querying for a single result the pipeline will check the internal cache first before looking at the database. This has a dramatic effect on LINQ2SQLExtensions performance as LINQ2SQLExtensions uses Entity.GetOnContext(DataContext) extensively.

Due to the above I strongly advise against using LINQ2SQLExtensions without .NET 3.5 SP1 installed.

Last edited Nov 13, 2008 at 11:57 AM by MylesMcDonnell, version 27