如何处理模型类中的外键关系

时间:2009-03-21 12:14:42

标签: .net asp.net linq-to-sql orm

假设我有一个带有FK CompanyId的Project表,它将项目与公司表相关联。

在您的项目模型中,您是否添加了公司对象,或仅添加了CompanyId属性,并在代码中需要时检索公司?

2 个答案:

答案 0 :(得分:2)

这取决于你要用它做什么。例如,如果您拥有一个包含创建项目所需的所有字段的UI,并且在该UI中您选择将项目与下拉框关联的公司,那么可能只是关联密钥将是一个合理有效的事情。

我更愿意在“纯度”方面附加公司对象,但如果我从未遇到过与该客户实际做任何事情的情况,我会简单地使用密钥。我不知道你使用什么语言/平台,但你可以考虑某种延迟加载方案,其中公司对象在JIT基础上填充其数据。

答案 1 :(得分:0)

使用LinqToSQL时,外键关系会自动在SQLMetal生成的业务实体中建模。实体类型具有以子或父类型命名的子或父属性。您可以使用它们来检索相关的业务实体。

这些属性支持延迟加载,因此您只需在需要时从数据库加载相应的子实体或父实体。