Мы находимся в процессе многолетнего проекта, в котором мы строим новую систему и новую базу данных, чтобы в конечном итоге заменить старую систему и базу данных. Пользователи используют новые и старые системы, поскольку мы их меняем.
Проблема, с которой мы продолжаем сталкиваться, заключается в том, что объект в одной системе зависит от объекта в другой системе. Мы использовали представления , но столкнулись с ограничением одной из технологий (Entity Framework) и рассматриваем другие варианты.
Другой вариант, который мы сейчас рассмотрим, это replication . Мой босс не взволнован дополнительным обслуживанием, которое могло бы вызвать. Итак, какие еще есть варианты для получения зависимых данных в базе данных, которая нуждается в этом?
Обновление:
Используемые нами технологии: SQL Server 2008 и Entity Framework. Обе базы данных находятся в одном экземпляре сервера sql, поэтому связанные серверы не нужны.
Ограничение, с которым мы сталкиваемся в Entity Framework, заключается в том, что мы не можем создать отношения между объектами на основе таблиц и объектами на основе представлений. Насколько я знаю, в базе данных не может существовать никакой связи между представлением и таблицей, поэтому диаграмма edmx не может это сделать. И я не могу создать отношения вручную, не получив ошибок. Он считает, что все столбцы в представлении являются ключами.
Если я оставлю это так, я получу такую ошибку для каждого столбца в представлении:
Свойство [...] ключа ассоциации конца
не нанесен на карту.
Если я пытаюсь изменить свойство «Entity Key» на false для столбцов, которые не являются ключом, я получаю эту ошибку:
Все ключевые свойства
EntitySet [...] должен быть сопоставлен со всеми
ключевые свойства [...] таблицы
VIEWNAME .
Согласно этому сообщению на форуме это звучит как ограничение Entity Framework.
Обновление № 2
Я должен также упомянуть, что основным ограничением Entity Framework является то, что он поддерживает только одну базу данных одновременно. Поэтому нам нужно, чтобы старые данные были в новой базе данных, чтобы Entity Framework мог их увидеть. Нам нужен только доступ на чтение старых системных данных в новой системе.