为什么EF5使用_Id创建外键,但建议使用不带下划线的命名约定Id



我的数据库中有EF为我放入的列,它们是类名后面跟着_Id。然而,许多文档建议外键的命名约定是类名后跟Id,不带下划线。

就像这篇文章一样,我不想在我的数据库中同时使用这两种约定。

Code First使用[导航属性名称]_[相关类主键]模式在数据库中创建外键

为什么这两个明显不一致的约定?

每个引用另一个实体的实体都应该有一个名为ForeignEntityId的属性(注意Id中的小写d)。

如果您按照本例的确切模式设置实体,则所有列都应按照约定命名:

public class Customer
{
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Order> Orders { get; set; }
}
public class Order
{
    public int Id { get; set; }
    public int CustomerId { get; set; } // this property is important
    public string ProductName { get; set; }
    public decimal Price { get; set; }
    public virtual Customer Customer { get; set; }
}

最新更新