Аргумент Исключение

Исключение:

Указанное именованное соединение либо не найдено в конфигурации, не предназначено для использования с поставщиком EntityClient, либо недопустимо.

Метод, где произошло исключение:

/// <summary>
/// Initializes a new DSAplcEntities object using the connection string found in the 'DSAplcEntities' section of the application configuration file.
/// </summary>
public DSAplcEntities() : base("name=DSAplcEntities", "DSAplcEntities")
{
      this.ContextOptions.LazyLoadingEnabled = true;
      OnContextCreated();
 }

Что именно означает это исключение и как я могу это исправить?

2 ответа

Решение

Нашел решение. Проблема заключалась в том, что я использовал WCF Services в своем проекте и не копировал строку подключения в App.Config внутри сервисного решения.

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

Похоже, вы вызываете конструктор для ObjectContext, который принимает два аргумента, первый из которых должен быть допустимой строкой соединения. Передаваемая вами строка не является допустимой строкой соединения EF, поэтому вы получаете сообщение об ошибке от EF.

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

Другие вопросы по тегам