【发布时间】:2011-11-23 04:41:12
【问题描述】:
目前我的模型都有一个 Id(主键),但是对其他模型的引用是在不使用数字 ID 的情况下进行的,即它们是对象引用。我期待 EF 提供魔力,让这项工作如我所料......目前似乎是这样。但是,我看到很多带有显式整数外键的问题和示例。我是否遗漏了一些东西或对框架期望过高 - 或者这就是它的设计用途?
【问题讨论】:
标签: c# .net entity-framework-4.1 ef-code-first code-first
目前我的模型都有一个 Id(主键),但是对其他模型的引用是在不使用数字 ID 的情况下进行的,即它们是对象引用。我期待 EF 提供魔力,让这项工作如我所料......目前似乎是这样。但是,我看到很多带有显式整数外键的问题和示例。我是否遗漏了一些东西或对框架期望过高 - 或者这就是它的设计用途?
【问题讨论】:
标签: c# .net entity-framework-4.1 ef-code-first code-first
您不需要显式声明外键。默认情况下,EF 代码首先将创建与对象引用的一对一关系以及与对象引用集合的一对多关系。唯一需要的是主 ID。
现在,当必须映射到特定字段或想要在不包含关系的情况下使用外键时,显式声明外键可能会很方便。在我的一个项目中,我还威胁我的实体(在你的情况下是模型)作为 DTO。因此,我不希望存在关系。我使用显式外键加载其他数据,例如:
var student = service.GetStudent();
var class = service.GetClassById(student.ClassId);
这完全取决于需求,EF 代码首先为您提供了一个很好的工具集来实现您的需求。
【讨论】: