Tra*_*den 14 .net c# entity-framework entity-framework-6
当我们离开Linq2Sql时,我们正在学习Entity Framework 6.1(来自NuGet).我们有一小部分表关联两个单独的表,如下所示.
EF6数据库第一代
数据库图:

架构概述:

当在Visual Studio,空白类库中,执行Database First EF6 EDMX文件时,该图只生成TableA和TableC - TableB不会生成.

视觉工作室查看:

您可以看到只创建了TableA和TableC.从技术上讲,应该已经创建了TableB,因为您希望能够管理这些引用.
图中所示的A和C之间的关联:

我觉得我错过了一个选项,或者误解了实体框架的一个关键概念.知道如何用T4生成缺少的TableB吗?EDMX文件确实显示它,但由于某种原因,它不会生成到.CS文件中,其中两个属性指示关系.
我们需要这个的主要原因是我们扩展了EF6 T4模板以添加一些工厂模式以匹配我们现有的模型.因为它不会为TableB生成一个类,所以我们不会得到我们正在寻找的自动生成的代码.
想法/建议?谢谢.
EF不会生成弱实体或连接表,您需要通过流畅的API或使用数据注释手动配置关系
正如微软网站上所述:根据关系惯例:
注意:如果相同类型之间有多个关系(例如,假设您定义了
Person和Book类,其中Person类包含ReviewedBooks和AuthoredBooks导航属性,Book类包含Author和Reviewer导航属性),则需要使用数据注释手动配置关系或者流畅的API.有关更多信息,请参阅数据注释 - 关系和Fluent API - 关系.
有关更多信息,请参阅此链接
更新
对于EDMX(但成本维护),解决方法将如下工作:
只要您不再次从数据库更新模型,此解决方法就会起作用.
建议的解决方案,保留EDMX生成的所有内容,并使用以下链接了解有关如何使用crud操作的更多信息,这些链接由用户"@TravisWhidden"报告为"有用"
| 归档时间: |
|
| 查看次数: |
5906 次 |
| 最近记录: |