User login |
Binding Entities to Form ControlsBinding Entities to Forms controls - easily done but not easily divined. The naive would hook a LinQ query to the BindingSource's DataSource - and would be rewarded with a functional binding - most of the time. In fact for read only lists of things this may be acceptable (adding/deleting objects causes inconsitencies in the ObjectManager). One piece of advice I ran across is to not use this type of binding because every time the BindingSource moves to a different record it rexecutes the query (not confirmed by my testing but it may be true) which could be handy in a highly concurrent environment. After much gnashing and googling I came across the "proper" way to do this (actually it's in book: "Programming Entity Framework" - O'Reilly"):
ObjectQuery<User> query;
...
query = ( from var in m_model.Users
orderby var.sortorder, var.name
select var
) as ObjectQuery<User>;
userBindingSource.DataSOurce = query;
As long as you cast the LinQ query to a ObjectQuery<T>, the BindingSource coordinates everything properly.
Typing: The query is run on the EntitySet while the ObjectQuery<T> is typed to the underlying object.
|