EF4 межбазы данных

Мне было интересно, если EF4 поддерживает отношения между базами данных? Например:

DB1

Author
  Id
  Name

db2

Posts
  Id
  Content
  db1.Author.Id

Что в идеале мне нужно сделать, чтобы получить это соотношение в моей модели ef4?

Ребята, у вас есть идеи?

Спасибо

3 ответа

Решение

Я нашел эту запись в Microsoft Connect, которая отвечает на вопрос о поддержке, оказанной в данный момент EF (на самом деле она еще не поддерживается).

Также нашел тему в социальной сети MSDN по этому поводу.

Другие ссылки на переполнение стека:

В итоге, единственными данными альтернативами являются:

  1. Использование представлений в EF

  2. Вместо этого используйте NHibernate

Если ваша база данных поддерживает синонимы, вы можете обмануть EF, чтобы охватить несколько баз данных. Я написал, как это сделать здесь.

В основном вы получаете файл edmx для каждой базы данных и скрипт, который объединяет их в один файл edmx. Синонимы используются для ссылки на одну базу данных из другой с использованием фактического имени таблицы, поэтому EF не выбрасывает соответствие при попытке доступа к database2.table из database1. Вам все еще нужно настроить связи между двумя базами данных вручную в модели EF, но после настройки они останутся, даже если вы повторно запустите сценарий слияния.

Скрипты для настройки синонимов и объединения файлов edmx размещены в ссылке

Недавно я начал проект, который использует инфраструктуру сущностей с двумя базами данных, одной Oracle и одним SQL Server. Я не смог найти какую-либо информацию о поддержке нескольких баз данных или нескольких баз данных в структуре сущностей.

Большинство сообщений от MS Entity Framework Team имеют пару лет и указывают, что включение двух баз данных в одну модель не является функцией, которая будет включена в ближайшее время. Мне было бы интересно получить конкретный ответ о том, был ли он включен в 2010 году, хотя я подозреваю, что ответ - нет.

В настоящее время наш проект обходит это ограничение, имея отдельную модель сущности для каждой базы данных. Это решило проблему для большинства сценариев, с которыми мы столкнулись до сих пор в проекте.

В случаях, когда нам нужно было запрашивать данные из двух баз данных одновременно, мы просто создавали представление в одной или другой базе данных. Поскольку мы используем Oracle и SQL Server, это представление будет использовать либо связанный сервер (SQL), либо DBLink (Oracle).

Недостаток представлений в структуре сущностей заключается в том, что нам пришлось потратить больше времени, чем я ожидал, чтобы заработали первичные ключи.

Надеюсь это поможет.

Другие вопросы по тегам