0

Я пытаюсь сделать отношение 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.DatabaseGe‌​nerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGen‌​eratedOption.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).

Как я могу это решить?

ответ

1

По умолчанию Entity Framework объединяет имя сущности, чтобы назвать таблицу DB. Вы можете отключить это поведение в методе OnModelCreating, добавив следующий код:

modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); 
+0

Спасибо @ Алексей Андрушкевич – ThunD3eR