EntityFramework4.4と.NETFramework4.0を使用してASPMVCWebサイトを構築しています
モデルに次のような多対多の関係を追加しました。
public class User {
public int UserID { get; set; }
public string Username { get; set; }
public virtual ICollection<Tenant> Tenants { get; set; }
}
public class Tenant {
public string TenantID { get; set; }
public string Name { get; set; }
public virtual ICollection<User> Users { get; set; }
}
コマンドを実行するAdd-Migration
と、この移行クラスが取得されます(Downメソッドを削除します)
public partial class TenantUsersManyToManyMigration : DbMigration
{
public override void Up()
{
CreateTable(
"dbo.UserTenants",
c => new
{
User_UserID = c.Int(nullable: false),
Tenant_TenantID = c.String(nullable: false, maxLength: 128),
})
.PrimaryKey(t => new { t.User_UserID, t.Tenant_TenantID })
.ForeignKey("dbo.Users", t => t.User_UserID, cascadeDelete: true)
.ForeignKey("dbo.Tenants", t => t.Tenant_TenantID, cascadeDelete: true)
.Index(t => t.User_UserID)
.Index(t => t.Tenant_TenantID);
}
}
TenantIDとUserIDのフィールド名がUser_UserIDとTenant_TenantIDであり、それぞれUserIDとTenantIDではないのはなぜですか。
デフォルトの移行スキャフォールディング(またはモデル)を変更して、cascadeDeleteをfalseにするにはどうすればよいですか?(現在、私はそれを手で変更するだけです)。