Я пытаюсь создать структуру БД, используя несколько схем.Сейчас я нахожусь в точке, где мне нужно связать свою таблицу User (схема аутентификации) с моей таблицей TrafficArea (схема активов).Однако при генерации миграций он пытается создать таблицу User в схеме активов.
На данный момент я настроил следующее
AssetsContext.cs - OnModelCreating ()
modelBuilder.HasDefaultSchema("assets");
modelBuilder.Entity<TrafficArea>()
.HasMany(tm => tm.TransportManagers) // This is ICollection<User>
.WithMany(u => u.TrafficAreas)
.Map(tatm =>
{
tatm.MapLeftKey("TrafficAreaId");
tatm.MapRightKey("UserId");
tatm.ToTable("TrafficAreaTransportManagers", "assets");
});
AuthenticationContext.cs - OnModelCreating ()
modelBuilder.HasDefaultSchema("authentication");
При запуске миграции я получаю следующую попытку запуска
CreateTable(
"assets.User",
c => new
{
Id = c.Guid(nullable: false),
Email = c.String(),
etc...
})
.PrimaryKey(t => t.Id);
CreateTable(
"assets.TrafficAreaTransportManagers",
c => new
{
TrafficAreaId = c.Guid(nullable: false),
UserId = c.Guid(nullable: false),
})
.PrimaryKey(t => new { t.TrafficAreaId, t.UserId })
.ForeignKey("assets.TrafficArea", t => t.TrafficAreaId, cascadeDelete: true)
.ForeignKey("assets.User", t => t.UserId, cascadeDelete: true)
.Index(t => t.TrafficAreaId)
.Index(t => t.UserId);
Как убедиться, что таблица User не воссоздана в схеме активов.
Я попытался вручную изменить сценарий миграции, чтобы он указывал на таблицу authentication.User, например:
CreateTable(
"assets.TrafficAreaTransportManagers",
c => new
{
TrafficAreaId = c.Guid(nullable: false),
UserId = c.Guid(nullable: false),
})
.PrimaryKey(t => new { t.TrafficAreaId, t.UserId })
.ForeignKey("assets.TrafficArea", t => t.TrafficAreaId, cascadeDelete: true)
.Index(t => t.TrafficAreaId)
.Index(t => t.UserId);
AddForeignKey("assets.TrafficAreaTransportManagers", "UserId", "authentication.User", "Id");
, но это ошибки во время выполнения: