Entity Framework Builder попробуйте сгенерировать таблицу дважды - PullRequest
0 голосов
/ 29 мая 2019

Следующий код всегда пытается сгенерировать таблицу базы данных сервера дважды.

Пользователь

public class User : IdentityUser {
  public ICollection<IdentityRole> UserRoles { get; set; }

  public virtual ICollection<UserServer> Servers { get; set; }
}

TestServer

public class TestServer {
  public string TestServerId { get; set; }

  // This throw the error
  [InverseProperty("User")]
  public string UserId { get; set; }
  public virtual User.User User { get; set; }
}

Программа

// Entity Framework startup for generating the database tables.
....
// User
var userContext = services.GetRequiredService<UserContext>();
userContext.Database.EnsureCreated();
UserContextInitializer.Initialize(userContext);

// Server
var serverContext = services.GetRequiredService<ServerContext>();
serverContext.Database.EnsureCreated();
ServerContextInitializer.Initialize(serverContext);

// TestServer
// Error throw here: Table 'Server' already exists ---> MySql.Data.MySqlClient.MySqlException (0x80004005): Table 'Server' already exists

var testServerContxt = services.GetRequiredService<TestServerContext>();
var creator2 = (RelationalDatabaseCreator) testServerContxt.Database.GetService<IRelationalDatabaseCreator>();
creator2.CreateTables();
testServerContxt.Database.EnsureCreated();

Почему Entity Framework пытается сгенерировать таблицу Server, а не таблицу TestServer?

Заранее спасибо.

С уважением, Тимо

...