Я пытаюсь сделать отношение forein ключевое (одно --- к ---- много)Почему первое перемещение кода, изменяющее имя таблицы?
И иметь приложениеUser имеет foreinKey к таблице существующего человека.
мой код.
public class ApplicationUser : IdentityUser
{
[Required]
public long PersonId { get; set; }
//[Required]
[ForeignKey("PersonId")]
public virtual Person Person { get; set; }
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
{
// Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
// Add custom user claims here
return userIdentity;
}
}
Person Таблица (существующие в БД)
public class Person
{
[System.ComponentModel.DataAnnotations.KeyAttribute()]
[System.ComponentModel.DataAnnotations.Schema.DatabaseGenerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.None)]
public long PersonId { get; set; }
public virtual ICollection<ApplicationUser> Users { get; set; }
}
Проблема:
При использовании миграции я получаю следующее.
вверх метод:
CreateTable(
"dbo.People",
c => new
{
PersonId = c.Long(nullable: false),
})
.PrimaryKey(t => t.PersonId);
вниз метод:
public override void Down()
{
DropForeignKey("dbo.AspNetUsers", "PersonId", "dbo.People");
DropIndex("dbo.AspNetUsers", new[] { "PersonId" });
DropTable("dbo.People");
}
Откуда dbo.People родом из ??? предполагается, что нужно перейти к db.Person, который является уже созданной таблицей (через sql).
Как я могу это решить?
Спасибо @ Алексей Андрушкевич – ThunD3eR