サンプルコードがあります:
public class Tag
{
public int TagId { get; set; }
public virtual ICollection<User> Users { get; set; }
}
public class User
{
public int UserId { get; set; }
public virtual ICollection<Tag> Tags { get; set; }
}
モデルに対してEFを実行すると(コードファーストアプローチを使用)、データベースにいくつかのテーブルが自動的に作成されます。
Users
Tags
UserTagUsers <-- junction table for many-to-many relationship
ユーザーエンティティにもう1つのプロパティを追加することを決定するまでは、問題ありません。
public class User
{
public int UserId { get; set; }
public virtual ICollection<Tag> Tags { get; set; }
public virtual ICollection<Tag> Tags2 { get; set; }
}
この場合、EFは完全に異なる関係を生成し、UserTagUsersジャンクションテーブルを削除しますが、1対1のマッピングにするためにTagsテーブルにいくつかの追加のプロパティを追加します。
プロパティTagsとTags2を多対多にするようにEFに明示的に指示するにはどうすればよいですか?