オンラインおよび Programming Entity Framework CodeFirst ブックで見た例から、両方のクラスにコレクションがある場合、EF は 2 つの主キーを持つマッピング テーブルを作成します。しかし、このテーブルにフィールドを追加するにはどうすればよいでしょうか? たとえば、次のエンティティとコンテキストがあります
public class User
{
[Key]
public Guid Id { get; set; }
public String Name { get; set; }
public virtual ICollection<Role> Roles { get; set; }
}
public class Role
{
[Key]
public Guid Id { get; set; }
public String Name { get; set; }
public virtual ICollection<User> Users { get; set; }
}
class MyContext : DbContext
{
public MyContext (string connString)
: base(connString)
{
}
public DbSet<User> Users { get; set; }
public DbSet<Role> Roles { get; set; }
}
このコンテキストにアクセスすると、Users、Roles、UserRoles の 3 つのテーブルを持つデータベースが作成されます - 2 つの Guid フィールドを持つ多対多のマッピング テーブル。
このテーブルに追加フィールドを追加したいと思います - DateTime AssignmentDate. 新しいエンティティを追加すると
public class UserRoles
{
[Key]
public Guid User_Id { get; set; }
[Key]
public Guid Role_Id { get; set; }
public DateTime AssignmentDate { get; set; }
}
class MyContext : DbContext
{
public MyContext (string connString)
: base(connString)
{
}
public DbSet<User> Users { get; set; }
public DbSet<Role> Roles { get; set; }
public DbSet<UserRoles> UserRoles { get; set; }
}
その結果、データベースに 1 つのテーブルが追加されます。しかし、自動作成されたテーブルを変更したい。これどうやってするの?
どうも。