在什么情况下我需要entity framework中的外键和导航属性

我的Order课程有:

public int CustomerId { get; set; } public Customer Customer { get; set; } 

我真的需要这两个属性来建立关系吗?

我没有使用断开连接的实体,我使用代码第一种方法。

根据Julia Lerman的书: Programming Entity Framework:DbContext ,不同之处在于更新导航属性的难度。 在第85页中,她建议“如果在N层方案中有一件事可以让你的生活更轻松,那就是为模型中的关系公开外键属性。” 该书包括两种情景的样本。

原因是包含外键属性告诉entity framework使用外键关联,这比在需要更新关系时使用所谓的独立关联更简单,即在您的示例中将订单从一个客户更改为另一个客户。 使用外键关联,您需要做的就是更改CustomerId。 如果没有CustomerId外键,则需要更多步骤。 独立关联使用ObjectStateManager,解释代码优先:独立关联与外键关联? ObjectStateManager很复杂,甚至没有从DbContext API公开。