首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实体框架6公约

实体框架6公约
EN

Software Engineering用户
提问于 2014-06-24 22:33:35
回答 1查看 253关注 0票数 0

我经常使用实体框架,但我有一个困惑,我想更好地理解。

如果我想在一个实体中拥有一个导航属性,比如

代码语言:javascript
复制
public virtual ExampleObject Example {get;set;}

拥有Id属性也是已完成的事情。

代码语言:javascript
复制
public int ExampleId {get;set;}

我的理由是,这会创建一个FK,但如果我忽略它,功能是相同的,而且FK似乎无论如何都是创建的。那么,是否有理由需要额外的字段?

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2014-06-24 23:05:21

我从未使用过实体框架,也不熟悉它的实现细节,但通常ORMs不会将外键解析为对象,除非明确指示它们这样做,或者用户尝试访问这些对象。这是有意义的--填充Example属性比填充ExampleId要广泛得多,因为ID是包含实体的表的列,但是对于完整的ExampleObject,您需要查询另一个表。

虽然ExampleId似乎只对解析完整的ExampleObject很有用,但在某些情况下您只需要ID。例如,如果Student有带有CourseId外键的Course,而Assignment也有CourseCourseId外键,那么您可能需要直接使用Student's CourseId d12获得所有Assignments,并使用相同的CourseId。为此您不需要完整的Course对象。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/245993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档