4.1.实体框架代码优先-在模型中显式使用外键
本文关键字:模型 框架 实体 代码 | 更新日期: 2023-09-27 18:15:24
目前我的模型都有一个Id(主键),但是对其他模型的引用不使用数字Id,因为它们是对象引用。我期待英孚能像我期望的那样提供魔力,使这一切顺利进行。目前看来是这样的。但是,我看到许多带有显式整数外键的问题和示例。我是否错过了一些东西或对框架期望过高-或者这是它的设计使用方式?
你不需要显式声明外键。默认情况下,EF代码首先会创建一个对象引用的一对一关系,以及一个对象引用集合的一对多关系。唯一需要的是主id。
现在,当必须映射到特定字段或想要使用外键而不包括关系时,显式声明外键可能很方便。在我的一个项目中,我也威胁我的实体(在你的例子中是模型)为DTO。因此,我不希望关系存在。我使用显式外键来加载其他数据,如:
var student = service.GetStudent();
var class = service.GetClassById(student.ClassId);
这完全取决于需求,EF代码首先为您提供了一个很好的工具集来实现您的需求。