我读过很多地方应该(通常)在实体中拥有外键id,因为它是一个数据库细节,事实上,EF通过在相应的表中添加一个EntityName_Id列来很好地管理它。实体框架:在实体中包含外键ID?
public class Order
{
public decimal Total { get; set; }
public int? InvoiceId { get; set; }
public Invoice Invoice { get; set; }
}
public class Invoice
{
public ICollection<Order> Orders { get; set; }
}
在这个例子中,一个Order
具有Invoice
可选关系。当显示有关Order
的信息时,我很想知道它是否有Invoice
。
问题是,如果我的实体中没有'InvoiceId'属性,我必须检查整个相关实体以检查它是否存在,而在我的实体中拥有该属性将允许我检查它null,从实体已经加载的意义上说它是“自由的”。
这是在实体中具有外键Id属性的唯一用法吗?我在这里错过了什么吗?