哪个作为POCO模型属性更好:ForeignKey/ID还是Object引用

本文关键字:ForeignKey ID 还是 引用 Object 更好 POCO 属性 模型 | 更新日期: 2023-09-27 18:15:23

你好,我开始在我正在工作的项目中使用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作为引用字段,如地址,我在我的模型中使用直接引用地址对象。我认为使用引用更好,因为我在这个级别处理对象,而不是记录或DB级别,最终将由ID引用。但是,您会在代码优先模型中使用什么?

哪个作为POCO模型属性更好:ForeignKey/ID还是Object引用

假设所有其他条件都相同,对象引用更好,因为"软"基于id的引用的"噪声"会污染您的模型。

也就是说,正如Ladislav在EF 4的外键与独立关联中所写的那样,所有其他事情都是不平等的。例如,独立关联要求在内存中有关系的两端。当保存更新时,这可能会有点问题,因为你必须加载关系的目标,否则你不会为了它在ObjectStateManager中而加载它。当保存具有许多对"引用数据"类型实体的引用的实体时,以及在n层体系结构中工作时,这是一个特别痛苦的问题。

都可以工作,但它们的实现并不完整,并且没有奇偶性。因此,如果没有对您的使用模式、体系结构和性能需求进行更严格的分析,就无法完全确定地回答