Это длинная история, но я постараюсь не делать ее скучной.
В первой версии EF мы поддерживали привязку непосредственно к запросам. Мы накопили достаточно опыта о подводных камнях и путанице, которую это породило, и решили явно отключить его в новом API, который мы создали для EF 4.1.
Основная проблема для меня заключалась в том, что инфраструктура привязки данных WinForms и WPF предполагает, что источники данных находятся в памяти и являются недорогими для доступа. Это привело к привязке данных, часто запрашивая список привязок более одного раза. В EF привязка к повторно используемому запросу обязательно подразумевала получение последних результатов из базы данных, поэтому мы сделали так, чтобы каждый раз, когда запрашивался список привязок, мы повторно выполняли запрос к базе данных. Это вызывало как минимум два выполнения запроса каждый раз, когда кто-либо был связан с запросом.
Было несколько других аспектов привязки к запросам, которые были довольно запутанными или нелогичными для многих клиентов. Я исследую, как все работало в этом сообщении в блоге: http://blogs.msdn.com/b/diego/archive/2008/10/09/quick-tips-for-entity-framework-databinding.aspx
То, что вы должны делать с DbContext API, это напрямую связываться с локальными данными, а не с запросами. Для этого мы раскрываем DbSet.Local, который представляет собой ObservableCollection, который очень хорошо работает для WPF, и метод ToBindingList, который упаковывает коллекцию в BindingList для более легкого потребления в WinForms.
Я вижу, что сообщение об исключении может быть более явным в отношении существования локального свойства. Я рассмотрю вопрос об ошибке для этого.
Надеюсь, это поможет