0

オンラインおよび 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 つのテーブルが追加されます。しかし、自動作成されたテーブルを変更したい。これどうやってするの?

どうも。

4

1 に答える 1