EF6数据库第一代
DB图:
模式概述:
当在Visual工作室,空白类库中,做一个Database First EF6 EDMX文件时,该图只生成TableA和TableC – 不会生成TableB.
视觉工作室视图:
您可以看到仅创建了TableA和TableC.技术上应该已经创建了TableB,因为您希望能够管理这些引用.
A和C之间的关联如图所示:
我觉得我错过了一个选择,或者误解了实体框架的一个关键概念.任何想法如何使用T4生成的缺少的TableB? EDMX文件显示它,但由于某些原因,它不会生成到.CS文件中,其中两个属性指示关系.
我们需要的主要原因是扩展了EF6 T4模板,以添加一些工厂模式来匹配我们现有的模型.因为它没有为TableB生成一个类,所以我们不会得到我们正在寻找的自动生成代码.
想法/建议?谢谢.
解决方法
如微软网站所述:“关系公约”:
Note:If you have multiple relationships between the same types (for
example,suppose you define thePerson
andBook
classes,where the
Person
class contains theReviewedBooks
andAuthoredBooks
navigation
properties and theBook
class contains theAuthor
andReviewer
navigation properties) you need to manually configure the
relationships by using Data Annotations or the fluent API. For more
information,see Data Annotations – Relationships and Fluent API –
Relationships.
有关更多信息,请参阅此link
更新
如果EDMX(但是维护成本),解决方法将适用于以下情况:
>从数据库中的连接表中删除外键
>从数据库更新EDMX
>在连接表中重新创建外键
推荐的解决方案,保留EDMX生成的所有内容,并使用用户“@TravisWhidden”报告“有帮助”的以下链接,详细了解如何使用crud操作
> stackoverflow.com/questions/425316
> https://www.youtube.com/watch?v=uMQwORSTGX4(视频)