EF4, самоконтроль, шаблон репозитория, SQL Server 2008 И SQL Server Compact - PullRequest
0 голосов
/ 27 апреля 2010

Я создаю проект, используя Entity Frameworks 4 и самотрекинг сущностей. Я хочу иметь возможность получить данные из базы данных SQL Server 2008 или из компактной базы данных SQL Server (с переключателем находится в файле конфигурации). Я использую шаблон репозитория, и у меня будут самостоятельные отслеживающие сущности, расположенные в отдельной сборке.

Мне нужны два файла edmx? Если да, то как мне сгенерировать только один набор STE в отдельной сборке? Также мне нужно сгенерировать два класса контекста, а? Я не уверен в сантехнике для всего этого. Кто-нибудь может помочь?

Даррен

Я забыл добавить, что две базы данных будут идентичны и что компактная версия предназначена для автономного использования.

Ответы [ 2 ]

1 голос
/ 07 мая 2011

Просто чтобы продолжить. В конце мне пришлось сохранить два отдельных файла EDMX, один для SQL Server и один для компактных. Основная причина в том, что compact 3.5 не поддерживает автоматическую идентификацию (как упомянуто выше Zeeshan). Это в свою очередь привело к двум контекстным классам. В контекстном классе для SQL Server Compact мне пришлось поместить код для проверки на наличие вставок, запросить в базе данных последний идентификатор и увеличить его вручную перед сохранением.

К счастью, с выпуском Compact 4.0 это больше не применяется, так как поддерживает Auto ID, и вы действительно можете использовать только один файл EDMX.

Даррен

0 голосов
/ 10 июля 2010

Вам нужен файл edmx, если схема точно такая же. просто измените строку подключения, и все будет работать без проблем. Хотя я не уверен, как вы говорите, что схема одна и та же, когда компактная версия не поддерживает концепцию идентификации, а полноценный сервер SQL - нет. Поэтому, если вы используете функции, специфичные для сервера sql, которые недоступны в компактной версии, вы получите ошибки времени выполнения.

...