4

私は3つのクラスがあります

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Product> Products { get; set; }
}

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<User> Users { get; set; }
}

public class ProductXUser // Mapping class
{
    public int Id { get; set; }
    public int User_Id { get; set; }
    public int Product_Id { get; set; }
    public DateTime DateMapped { get; set; }
}

クラスとクラスをマッピングテーブルとして使用して、Userクラスとクラスの間の多対多の関係を(Fluent APIを使用して)どのようにマッピングできますか?ProductProductXUser

4

1 に答える 1

3

できません。ジャンクションテーブルをエンティティとして公開すると、多対多の関係を使用できなくなります。代わりに、2つの1対多の関係を使用する必要があります。1つはUsertoからProductXUser、2つ目はProductto ProductXUserProductまた、との両方のナビゲーションプロパティを変更しUserて、のコレクションを指すようにする必要がありProductXUserます。直接多対多関係は、ジャンクションテーブルをエンティティとして公開しない場合にのみ機能します。

于 2013-01-13T17:12:20.417 に答える