【发布时间】:2009-03-21 12:14:42
【问题描述】:
假设我有一个带有 FK CompanyId 的项目表,它将项目与公司表相关联。
在您的 Project 模型中,您是添加 Company 对象,还是仅添加 CompanyId 属性并在代码中需要时检索 Company?
【问题讨论】:
标签: .net asp.net linq-to-sql orm
假设我有一个带有 FK CompanyId 的项目表,它将项目与公司表相关联。
在您的 Project 模型中,您是添加 Company 对象,还是仅添加 CompanyId 属性并在代码中需要时检索 Company?
【问题讨论】:
标签: .net asp.net linq-to-sql orm
这取决于您要使用它做什么。例如,如果您有一个包含创建项目所需的所有字段的 UI,并且在该 UI 中您选择了将项目与下拉框相关联的公司,那么可能只关联键将是合理有效的做法。
我更愿意根据“纯度”来附加公司对象,但如果我从来没有遇到过我实际上会对那个客户做任何事情的情况,我只会使用密钥。我不知道您使用的是什么语言/平台,但您可以考虑某种延迟加载方案,其中公司对象基于 JIT 填充其数据。
【讨论】:
使用 LinqToSQL 时,外键关系会自动在 SQLMetal 生成的业务实体中建模。实体类型具有以子或父类型命名的子属性或父属性。您可以使用它们来检索相关的业务实体。
这些属性支持延迟加载,因此您各自的子实体或父实体仅在需要时从数据库加载。
【讨论】: