Entity Framework 4.3 Code-First と Migrations を使用する ASP.NET MVC3 アプリケーションがあります。
同じタイプのエンティティ間に多対多の関係を作成しようとしてきましたが、マイグレーションを使用してマイグレーションをスキャフォールディングすると、1 対 1 の関係が生成されます。
アイデアは、1 人のユーザーが他の複数のユーザーをフォローできるようにすることです (Twitter を考えてみてください)。
私のUser
モデルは次のようになります。
public class User
{
public int UserId { get; set; }
public string Name { get; set; }
public DateTime Registered { get; set; }
...
public virtual ICollection<User> Follows { get; set; }
}
追加された Follows プロパティをスキャフォールディングすると、次のような移行が得られます。
public partial class FollowUser : DbMigration
{
public override void Up()
{
AddColumn("User", "User_UserId", c => c.Int());
AddForeignKey("User", "User_UserId", "User", "UserId");
CreateIndex("User", "User_UserId");
}
...
}
したがって、Entity Framework は、私のモデルを 2 人のユーザー間の 1 対 1 の関係として解釈します。
同じタイプのエンティティ間に多対多の関係を作成するにはどうすればよいですか?