每当我开始做一个新项目,设计我的 POCOs 时,我都会和自己进行一场心理上的辩论。我看到过很多教程/代码示例似乎更喜欢 外国钥匙协会外国钥匙协会:
public class Order
{
public int ID { get; set; }
public int CustomerID { get; set; } // <-- Customer ID
...
}
与 独立协会相反:
public class Order
{
public int ID { get; set; }
public Customer Customer { get; set; } // <-- Customer object
...
}
我过去曾使用过 NHibernate,并使用过独立的关联,它们不仅感觉更像面向对象,而且(使用延迟加载)具有访问整个 Customer 对象的优势,而不仅仅是它的 ID。例如,这允许我检索 Order 实例,然后执行 Order.Customer.FirstName
,而不必显式地执行连接,这非常方便。
总结一下,我的问题是: