Строка подключения EDMX

так что история такая.

У меня есть проект под названием PA.DLL, внутри которого есть модель объекта (edmx).

В другом проекте, на который я ссылаюсь на PA.DLL, я скопировал строку подключения, созданную (автоматически) при создании файла edmx, в основное приложение app.config.

однако, когда я загружаю и запускаю следующие строки:

using (PAEntities analytix = new PAEntities())
           {
...
}

я получаю следующую ошибку:

System.ArgumentException: The specified default EntityContainer name 'PAEntities' could not be found in the mapping and metadata information.

Кто-нибудь знает, в чем причина этой ошибки?

Вот как настроена моя строка подключения:

<add name="PAEntities" 
    connectionString="metadata=res://*/PAEntities.csdl|res://*/PAEntities.ssdl|res://*/PAEntities.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=XSXSX;Initial Catalog=PA;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

Спасибо


person Or A    schedule 11.02.2010    source источник


Ответы (2)


Одним из решений является размещение строки подключения в файле конфигурации проекта, использующего вашу DLL.
Другой способ — передать строку подключения в коде (используйте параметризованный конструктор PAEntities).

person Devart    schedule 11.02.2010

В обозревателе решений щелкните правой кнопкой мыши файл модели данных объекта (.edmx) и выберите «Открыть с помощью». Откроется диалоговое окно для выбора программы для открытия файла. Выберите или дважды щелкните «XML (текстовый) редактор».

Теперь вы смотрите на XML-версию файла EDM, где вы можете легко изменить имя EntityContainer.

Если вы изменили строку подключения в файле webconfig, убедитесь, что «DefaultContainerName» — это имя в разделе «EntityContainer» в этом XML-файле.

Обычно при обновлении значения defaultContainerName в файле *.Designer.cs XML-файл не обновляется. Таким образом, вы должны сделать это вручную.

person RajivSinghSuwal    schedule 15.04.2011