В настоящее время я сталкиваюсь с проблемой работы с несколькими базами данных, которые очень похожи друг на друга, но имеют некоторые различия в их структуре. По унаследованным причинам обновление базы данных до всех, имеющих одинаковую структуру, невозможно.
Моя текущая структура проекта выглядит следующим образом:
public DBContextA : DBContext
{
DBSet<TypeA> TypeA { get; }
// Other DBSets
}
public DBContextB : DBContext
{
DBSet<TypeB> TypeB { get; }
// Other DBSets
}
public interface ICommon
{
long ID { get; set; }
}
public class TypeA : ICommon
{
long ID { get; set; }
// Other Properties
}
public class TypeB : ICommon
{
long ID { get; set; }
// Other Properties
}
Теперь я хочу запросить все ICommons из DBContext. Мой текущий код выглядит так:
// GetContextByConnection gets the context via reflection based on the selected database
using (var context = GetContextByConnection(connection))
{
return context.Set<ICommon>().ToList();
}
Выбор правильной базы данных работает с перегрузкой ConnectionString DBContext, но я получаю исключение
"the entity type ICommon is not part of the model for the current context"
что имеет смысл. Но вопрос в том, как я могу запросить ICommons?