我目前使用EF数据库第一种方法创建MVC/AngularJS应用程序。在实现我的数据库之后,我意识到我不能使用Database-First方法引用多对多关系。LINQ多对多选择
一个例子可能是Table1
通过称为Table3
的第三个表具有与Table2
的多对多关系。 Table3
包含两个主键:Table1
的PK和Table2
的PK。更新我的EDMX模型,我仍然不能添加这个表格,这是合理的,因为它只是一个多对多的关系,并且应该在Table1
类模型和Table2
类上设置此属性。
问题
使用AngularJS为我的前端,我需要我从数据库中检索的数据转换,而进入的HttpResponse(IHttpActionResult
)。我以前遇到过这样的问题(使用代码优先),并简单地禁用延迟加载(从我的EMDX模型类中的属性中删除了virtual
关键字)。
禁用延迟加载后,我似乎无法包含关系。下面是我的意思的例子:
from t1 in _context.Table1.Include(x => x.Table2)
的Table2
引用根本不包括在内,因此Icollection<Table2>
只是空。
这是否即使有什么从我的财产与我removingthe virtual
关键字,或者是这个东西是了问题两者的映射?
您需要加入表格。看到msdn:https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b – jdweng
但我不能。我有三个表格,其中2个包含在我的模型中,但最后一个表格不是,它包含关系,因为它是多对多的关系。我很确定我不能像这样加入,除非你能向我展示一个例子吗? – Detilium
请在请在SO发布问题之前做一些研究。有很多例子做很多很多,他们几个是 - 1)http://www.entityframeworktutorial.net/code-first/configure-many-to-many-relationship-in-code-first.aspx 2)https://stackoverflow.com/questions/19342908/how-to-create-a-many-to-many-mapping-in-entity-framework 3)https://stackoverflow.com/questions/5434125/实体框架 - codefirst一对多一对多的关系,与附加信息前 –