Я столкнулся с проблемой при попытке объединить 2 таблицы из 2 DbContext, которые представляют разные базы данных.
Я использую Fluent API для создания отношения внешнего ключа между 2 таблицами.Вот конфигурация и модели Dbcontext.
public class DbContextDemo1: DbContext
{
public DbSet<Agency> Agencies { get; set; }
public DbContextDemo1(DbContextOptions<DbContextDemo1> options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.HasDefaultSchema("db1")
.Entity<Agency>()
.ToTable("agencies")
.HasKey(agency => agency.Id)
.HasOne(agency => agency.AgencyApp)
.WithOne(app => app.Agency)
.HasForeignKey<Agency>(agency => agency.Id);
}
}
public class DbContextDemo2: DbContext
{
public DbSet<AgencyApp> AgencyApps { get; set; }
public DbContextDemo2(DbContextOptions<DbContextDemo2> options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.HasDefaultSchema("db2")
.Entity<AgencyApp>()
.ToTable("agenciesapps")
.HasKey(app => app .Id)
.HasOne(app=> app.Agency)
.WithOne(agency => agency.AgencyApp)
.HasForeignKey<AgencyApp>(app=> app.AgencyId);
}
}
Вот модели:
public class Agency
{
public Guid Id { get; set; }
public AgencyApp AgencyApp { get; set; }
}
public class AgencyApp
{
public Guid Id { get; set; }
public Guid AgencyId { get; set; }
public Agency Agency { get; set; }
}
Теперь, когда я пытаюсь получить данные агентств вместе с AgencyApp.
var result = _dbContextDemo1.Agencies.Include(agency => agency.AgencyApplication)
Выдает ошибку
"Таблица 'db2.agenciesapps' не существует".
Я вижу, что в консоли сервера выполняется внутреннее соединение между этими двумя таблицами.
Помощь будет весьма полезна.Спасибо