I work on the Entity Framework Team at Microsoft.
One of our customers asked this question yesterday on the Entity Framework forums. There were a few details missing and so I am not completely sure I got the question right. But I think it is about an issue I have heard quite a bit, and so I think it may be useful to share my answer here for others.
Given this simple line of code (i.e. in a WinForms application):
Several things will happening under the hood:
When a binding list is created this way from a tracked query (i.e. MergeOption in the query is set to anything but NoTracking), there are several other interesting details in the behavior:
All these facts, especially #5, warrant me to give you a couple of tips:
We have a few ideas around things we may improve in future versions. Some of them you may be able to guess from this explanation. But I will save that for another post...
Alex published today a description Colin and I wrote on a new feature the team has been working on for LINQ to Entities.
Beyond all technicalities, it is a very simple and attribute-based way of exposing any arbitrary server-side function to LINQ. It goes beyond what LINQ to SQL does with SqlMethods and it leverages our metadata system so that you don't have to specify the full mapping of parameters in the attribute.
The post itself may be a little boring ;), but the scenarios it enables are quite impressive.
Read more here.
Update: I remembered today that Kati Dimitrova and Sheetal Gupta also contributed to the document.