Строка подключения EDMX
Итак, история выглядит так.
У меня есть проект, который называется ПА.DLL, которые имеют модель сущности внутри него (edmx) файл.В другом проекте, который я ссылаюсь на ПА.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.
Другой - передать строку соединения в коде (использовать параметризованный конструктор Паентитов).
В обозревателе решений щелкните правой кнопкой мыши файл модели данных сущности (.edmx) и нажмите кнопку "Открыть с помощью". Откроется диалоговое окно выбора программы для открытия файла. Выберите или дважды щелкните на "XML (text) Editor".
Теперь вы смотрите на XML-версию EDM-файла, где вы можете легко редактировать имя EntityContainer.
Если вы изменили строку подключения в файле webconfig, убедитесь, что "DefaultContainerName" - это имя раздела "EntityContainer". в этом XML-файле.
Обычно при обновлении defaultContainerName в *.Дизайнер.cs-файл, он не обновляет XML-файл. Поэтому вы должны сделать это вручную.