2011-02-10 4 views
4

У меня есть модель в моем проекте, которая отображает LOT представлений в моей базе данных, но мне нужно сопоставить представление в другой базе данных.Модель EF, сопоставляющая несколько баз данных

Как это сделать? Нужно ли мне создавать другую модель? Я не хочу, но я буду, если придется.

ответ

3

Та же модель не может получить данные из двух разных БД. Самый простой способ - создать представление в той же базе данных, которая вызывает и возвращает данные из другой базы данных, то есть представление абстракции, которое внутренне вызывает внешний вид БД.

+0

о, как я хотел бы сделать вид с данными из другой БД. На самом деле, я хотел это сделать, но мне сказали, что мне запрещена возможность. :П – khr055

2

Если ваша база данных поддерживает синонимы, вы можете настроить синоним другой базы данных и объединить определение edmx с определением 1-й базы данных. Я написал, как это сделать here

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

0

Если вы используете код первого подход в Entity Framework, вот как карта EF объекта в таблицу из другой базы данных:

сценариев SQL, который должен быть запущен в базе данных, чтобы создать синоним для таблицы из других база данных:

CREATE SYNONYM OtherDatabaseTableSynonym FOR otherdatabase.dbo.otherdatabasetable 

Entity Framework картированию (свободный API):

modelBuilder.Entity<OtherDatabaseTableEntity>().ToTable("OtherDatabaseTableSynonym").HasKey(x => x.id); 
Смежные вопросы