3

こんにちは私は私のために完全に機能するモデルを開発しました、今私はEntityFrameworkを使用してそれをデータベースにマッピングしたいと思います、ここにその一部があります:

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ProductType Type { get; set; }
}

public class Supplier
{
    public int Id { get; set; }
    public string OIB { get; set; }
    public string Name { get; set; }
}

public class SupplierProduct
{
    public double Price { get; set; }
    public string SupplierMark { get; set; }

    public virtual Product Product { get; set; }
    public virtual Supplier Supplier { get; set; }
}

ここで私の質問は、DBContextからModelBuilderにエンティティ構成を記述して、DBリレーションのプライマリキーとしてSupplierProductクラスForeignKeysSupllier.IDとProduct.Idにマップする方法です。

4

1 に答える 1

4

私はデータ注釈を使用していますが、次のものを探していると思います。

のIDプロパティを定義ProductSupplierSupplierProductこれらのIDフィールドをFKとして指定してから、2つのIDフィールドを使用して複合主キーを定義します。

modelBuilder.Entity<SupplierProduct>()
    .HasRequired( sp => sp.Product)
    .WithMany( p => SupplierProducts )
    .HasForeignKey( sp => sp.ProductId );

modelBuilder.Entity<SupplierProduct>()
    .HasRequired( sp => sp.Supplier)
    .WithMany( s => SupplierProducts )
    .HasForeignKey( sp => sp.SupplierId );

modelBuilder.Entity<SupplierProduct>()
    .HasKey(sp=> new { sp.ProductId, sp.SupplierId });
于 2013-04-02T03:10:33.310 に答える