1

私のデータベースには、EF が入れてくれた列があります。これは、classname の後に _Id が続きます。ただし、多くのドキュメントでは、外部キーの命名規則は、クラス名の後にアンダースコアなしで Id を付けることを推奨しています。

この投稿のよう に、データベースに両方の規則を入れたくありません。

Code First は、パターン [ナビゲーション プロパティの名前]_[関連するクラスの主キー] を使用して、データベースに外部キーを作成します。

明らかに一貫性のない 2 つの規則があるのはなぜですか?

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 に答える