您好,我正在开始在我正在进行的项目中使用EF 4.1和POCO。我使用的模型看起来像这样:
public class Contact1
{
// Primary key
public int ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public virtual Address DelAddress { get; set; }
public virtual Address POAddress { get; set; }
public string EmailAddress { get; set; }
public bool InActive { get; set; }
public string Comment { get; set; }
public string Phone1 { get; set; }
public string Phone2 { get; set; }
}
但是我确实看到了很多使用ForeignID作为地址的参考的例子,例如Address,我正在使用模型中的地址对象的直接引用。我认为使用引用更好,因为我正在处理此级别的对象,但不是记录或数据库级别,最终将由ID引用。但是,你还会用什么代码进行Code First模型?
答案 0 :(得分:0)
假设所有其他事物都相同,对象引用更好,因为“软”基于ID的引用的“噪音”会污染您的模型。
那就是说,所有其他事情都不相同,因为拉迪斯拉夫在Foreign key vs. Independent associations in EF 4写道。例如,独立关联要求您在内存中拥有关系的两端。保存更新时,这可能会有点问题,因为您必须加载关系的目标,否则它不会在ObjectStateManager
中。保存具有许多引用“参考数据”类型实体的实体以及在N层架构中工作时,这是一种特别的痛苦。
两者都工作大部分都是正确的但是他们的实现并不完整,没有奇偶校验。因此,如果没有对您的使用模式,架构和性能要求进行更严格的分析, better 就无法完全确定。