1

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

这篇文章一样, 我不想在我的数据库中同时拥有这两种约定。

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

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

4

1 回答 1

3

每个拥有对另一个实体的引用的实体都应该有一个名为的属性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; }
}
于 2013-08-05T19:41:59.790 回答