我的Order课程有:
public int CustomerId { get; set; }
public Customer Customer { get; set; }
我真的需要这两个属性来建立关系吗?
我没有使用断开连接的实体,我使用代码第一种方法。
我的Order课程有:
public int CustomerId { get; set; }
public Customer Customer { get; set; }
我真的需要这两个属性来建立关系吗?
我没有使用断开连接的实体,我使用代码第一种方法。
根据Julia Lerman的书: 编程实体框架:DbContext,区别在于更新导航属性的难度。在第85页中,她建议“如果在N层方案中有一件事可以让你的生活更轻松,那就是为模型中的关系公开外键属性。”该书包括两种情景的样本。
原因是包含外键属性告诉实体框架使用外键关联,这比在需要更新关系时使用所谓的独立关联更简单,即在您的示例中将订单从一个客户更改为另一个客户。使用外键关联,您需要做的就是更改CustomerId。如果没有CustomerId外键,则需要更多步骤。独立关联使用解释的ObjectStateManager 代码优先:独立协会与外键协会? ObjectStateManager很复杂,甚至没有从DbContext API公开。