По умолчанию UserRoles
сопоставил две таблицы User
и Role
по UserId and RoleId
и имеет составной ключ на вышеуказанных столбцах.Составной код с кодовым преобразованием Entity Framework в таблицах Identity UserRoles
Я настроен, что, добавив еще две объектных отношений:
public class CustomUserRole : IdentityUserRole<int>
{
[Key]
public int MyEntityId { get; set; }
public virtual MyEntity MyEntity { get; set; }
}
Я получил этот миграционный сценарий:
public override void Up()
{
CreateTable(
"dbo.MyEntity",
c => new
{
Id = c.Int(nullable: false, identity: true),
Name = c.String(),
})
.PrimaryKey(t => t.Id);
AddColumn("dbo.UserRoles", "MyEntityId", c => c.Int(nullable: false));
CreateIndex("dbo.UserRoles", "MyEntityId");
AddForeignKey("dbo.UserRoles", "MyEntityId", "dbo.MyEntity", "Id", cascadeDelete: true);
}
после обновления базы данных по UserRole
таблице получила еще один столбец в нем называется MyEntityId
но добавляется как FK
. Я ожидал иметь тройной составной первичный ключ UserId and RoleId and MyEntityId
.
Как я могу сделать composete PK
: UserId and RoleId and MyEntityId
с кодом сущности сначала без прикосновения к базе данных вручную?