EF4 межбазы данных
Мне было интересно, если EF4 поддерживает отношения между базами данных? Например:
DB1
Author
Id
Name
db2
Posts
Id
Content
db1.Author.Id
Что в идеале мне нужно сделать, чтобы получить это соотношение в моей модели ef4?
Ребята, у вас есть идеи?
Спасибо
3 ответа
Я нашел эту запись в Microsoft Connect, которая отвечает на вопрос о поддержке, оказанной в данный момент EF (на самом деле она еще не поддерживается).
Также нашел тему в социальной сети MSDN по этому поводу.
Другие ссылки на переполнение стека:
В итоге, единственными данными альтернативами являются:
Если ваша база данных поддерживает синонимы, вы можете обмануть EF, чтобы охватить несколько баз данных. Я написал, как это сделать здесь.
В основном вы получаете файл edmx для каждой базы данных и скрипт, который объединяет их в один файл edmx. Синонимы используются для ссылки на одну базу данных из другой с использованием фактического имени таблицы, поэтому EF не выбрасывает соответствие при попытке доступа к database2.table из database1. Вам все еще нужно настроить связи между двумя базами данных вручную в модели EF, но после настройки они останутся, даже если вы повторно запустите сценарий слияния.
Скрипты для настройки синонимов и объединения файлов edmx размещены в ссылке
Недавно я начал проект, который использует инфраструктуру сущностей с двумя базами данных, одной Oracle и одним SQL Server. Я не смог найти какую-либо информацию о поддержке нескольких баз данных или нескольких баз данных в структуре сущностей.
Большинство сообщений от MS Entity Framework Team имеют пару лет и указывают, что включение двух баз данных в одну модель не является функцией, которая будет включена в ближайшее время. Мне было бы интересно получить конкретный ответ о том, был ли он включен в 2010 году, хотя я подозреваю, что ответ - нет.
В настоящее время наш проект обходит это ограничение, имея отдельную модель сущности для каждой базы данных. Это решило проблему для большинства сценариев, с которыми мы столкнулись до сих пор в проекте.
В случаях, когда нам нужно было запрашивать данные из двух баз данных одновременно, мы просто создавали представление в одной или другой базе данных. Поскольку мы используем Oracle и SQL Server, это представление будет использовать либо связанный сервер (SQL), либо DBLink (Oracle).
Недостаток представлений в структуре сущностей заключается в том, что нам пришлось потратить больше времени, чем я ожидал, чтобы заработали первичные ключи.
Надеюсь это поможет.