3

私は2つのクラスを持っています

public class Product
{
    public Guid Id { get; set; }
    public string ProductDetails { get; set; }
}

public class SpecialProductDetails
{
    public Guid Product_Id { get; set; } // PK and FK to Product class
    public string SpecialName { get; set; }
    public string SpecialDescription { get; set; }

    public virtual Product Product { get; set; }
}

SpecialProductDetailsProductクラスで1 対 1 でマップされ、オプションです。同じ PrimaryKey と ForeignKey を共有します。

Fluent API では、この関係を次のようにマッピングしています (内部SpecialProductDetails)

public SpecialProductDetails()
{
    HasKey(p => p.Product_Id);
    HasRequired(p => p.Product).WithMany().HasForeignKey(p => p.Product_Id).WillCascadeDelete(true);
}

これにより、データベースを生成しようとするとこのエラーが発生します

\tSystem.Data.Entity.Edm.EdmAssociationEnd: : 関係 'SpecialProductDetails_Product_Source' のロール 'SpecialProductDetails_Product_Source' で多重度が無効です。依存ロールはキー プロパティを参照するため、依存ロールの多重度の上限は '1' でなければなりません。

EF Code First で列を PK および FK として設定するにはどうすればよいですか?

4

1 に答える 1