Строка подключения EDMX
Итак, история такая.
у меня есть проект под названием PA.DLL, в которой есть модель сущности внутри файла (edmx).
в другом проекте, который я ссылаюсь на PA.Dll файлы, я скопировал строку подключения, которая была создана (автоматически) при создании файла edmx в основное приложение.конфиг.
однако, когда я загружаю и запускаю следующие строки:
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="Data Source=XSXSX;Initial Catalog=PA;Integrated Security=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
спасибо
2 ответов
одним из решений является размещение строки подключения к файлу конфигурации проекта, потребляющего вашу DLL.
Другой-передать строку соединения в коде (использовать параметризованный конструктор PAEntities).
в обозревателе решений щелкните правой кнопкой мыши файл модели данных сущности (.edmx) и нажмите "Открыть с помощью". Откроется диалоговое окно выбора программы для открытия файла. Выберите или дважды щелкните "XML (text) Editor".
теперь вы смотрите на XML-версию файла EDM, где вы можете легко редактировать имя "EntityContainer".
Если вы изменили connectionstring в файле webconfig, убедитесь, что "DefaultContainerName" - это имя в разделе "EntityContainer" в этом XML-файле.
обычно при обновлении defaultContainerName в *.Дизайнер.cs-файл, он не обновляет XML-файл. Поэтому вы должны сделать это вручную.