“ToList”如何改变我的EntityFramework查询的输出?

时间:2011-11-30 22:36:56

标签: .net entity-framework-4

您好我正在使用实体框架/ Vb.net 2010。 我有一个带有bindingsource到实体的表单,我想知道这两个指令之间有什么区别:

  1. MyBindingSource.datasource = from t in context.MyTable1 where ... some conditions                             选择t

  2. MyBindingSource.datasource =(来自上下文中的T.MyTable1其中......某些条件                              选择t).ToList

  3. 问题在于,当使用它们时,我在绑定源上添加,删除或修改记录时会有不同的情况(例如,当使用第二条指令时,当我删除实体上的某些内容时,记录仍然存在于bindingsource上,直到我关闭并重新打开表单,或者我也应该从bindingsource删除记录,如果我使用第一条指令,当我从实体删除绑定源立即更新)

    你可以向我解释一下吗?我应该使用哪一个? 谢谢。

2 个答案:

答案 0 :(得分:4)

第一个返回一个查询,你可以在其中添加更多where子句,排序等。将它绑定到数据源将导致它执行。这将保持与entites的链接,以便绑定源可以自动更新。

第二个执行查询并返回对象列表。然后将其绑定到数据源。此列表与实体分开,因此需要重新读取,这在重新打开表单时会发生。

答案 1 :(得分:0)

第一个返回IEnumerable(OfType T),第二个返回List(OfType T)