如何让我的实体模型让我访问我的多对多表?

时间:2011-10-20 22:36:49

标签: c# entity-framework linq-to-entities

我的模型在模型编辑器中将我的连接表转换为多对多关系。这意味着当我通过与另一个表中的行的多对多关系查询表时,我得到EntityCollection而不是IQueryable

我的理解是坚持使用IQueryable会更有效率,因为EntityCollection将实体类的实例加载到内存中然后查询它们。

2 个答案:

答案 0 :(得分:0)

我不确定这正是您要查找的内容,但EntityCollection<T>.CreateSourceQuery()将返回ObjectQuery的新实例,该实例实现IQueryable<T>

答案 1 :(得分:0)

查看http://www.asp.net/entity-framework/tutorials/creating-a-more-complex-data-model-for-an-asp-net-mvc-application并查看“自定义数据库上下文”部分。有一个流畅的API示例,说明如何在多对多关系中使用连接表。当我已经定义了一个DB时,我喜欢创建自己的模型类,并使用Fluent API和Data Annotations将它们链接到适当的表。这样我就可以控制应用程序如何使用这些表而不是信任框架来构建它认为需要构建的方式。这有两个方面:1)确保您熟悉应用程序如何使用您的数据; 2)让您更好地控制数据在应用程序中的表示方式。

快乐的编码!