Ошибка строки подключения к объектам данных

Должно быть, я где-то что-то изменил, но, черт побери, могу ли я понять, что это такое.

У меня есть DAL, который обрабатывает весь мой доступ к данным (как это обычно делает DAL) к моей базе данных SQL Server. Это включает в себя Entity Model, классы репозитория и строку подключения в файле App.Config.

Где-то в этой части я, должно быть, что-то изменил и теперь получаю следующее исключение каждый раз, когда пытаюсь просмотреть страницу в своем приложении MVC:

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

Это любая страница, которая наследует <IEnumerable<DataAccess.Layer.Class>>, Что мне не хватает?

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

<add name="JobTrackEntities" 
     connectionString="metadata=res://*/JobTrackDataModel.csdl|res://*/JobTrackDataModel.ssdl|res://*/JobTrackDataModel.msl;provider=System.Data.SqlClient;provider connection string='Data Source=.\SQLEXPRESS;AttachDbFilename=&quot;C:\Users\Phil\Documents\Visual Studio 2010\Projects\JobTrack\trunk\JobTrack\App_Data\JobTrack.MDF&quot;;Integrated Security=True;User Instance=True;MultipleActiveResultSets=True'" providerName="System.Data.EntityClient" />

Фрагмент Designer.cs:

public JobTrackEntities() : 
        base("name=JobTrackEntities", "JobTrackEntities")
{
    this.OnContextCreated();
}
/// <summary>
/// Initialize a new JobTrackEntities object.
/// </summary>
public JobTrackEntities(string connectionString) : 
        base(connectionString, "JobTrackEntities")
{
    this.OnContextCreated();
}
/// <summary>
/// Initialize a new JobTrackEntities object.
/// </summary>
public JobTrackEntities(global::System.Data.EntityClient.EntityConnection connection) : 
        base(connection, "JobTrackEntities")
{
    this.OnContextCreated();
}

4 ответа

Решение

Если вы ссылаетесь на свой объект сущности ADO.NET в другом проекте, посмотрите на

http://blogs.msdn.com/bindeshv/archive/2009/09/04/referring-ado-net-entity-project-in-a-different-project.aspx

Единственное, что я могу видеть, что может вызвать проблемы, это использование жестко закодированного пути. Вы пытались вставить \?

C:\\Users\\Phil\\Documents\\Visual Studio 2010\\Projects\\JobTrack\\trunk\\JobTrack\\App_Data\\JobTrack.MDF

Также я верю, что вы проверили и дважды проверили, что путь правильный?:)

Вы пытались получить путь к серверу, а затем добавить к нему app_data\jobtrack.mdf?

Вы пытались избавиться от пути entirley? Я спрашиваю, потому что, и я забываю, при каких обстоятельствах это правильно,.Net будет выводить путь и папку app_data при подключении к базе данных. опять же, вам нужно исследовать это.

Также иногда запуск утилиты конфигурации ASP.NET может исправить проект, сломать проект или определить, где проблема.

У меня была та же проблема, и после попытки исправить ее многими различными способами у меня возникла идея, что VS глючил, поэтому я упростил решение с помощью новых проектов (платформа сущностей и тестовый проект), скопировал файл конфигурации из библиотеки DLL в тест Проект и я получил ту же ошибку. Затем я удалил файл конфигурации из тестового проекта, добавил новый файл конфигурации, скопировал содержимое строки подключения в файл конфигурации, и он заработал.

Рискуя получить отрицательный голос, я замечаю, что всякий раз, когда я использую класс S2L dbml, я сталкиваюсь с той же проблемой, когда я изменяю файл dbml через интерфейс, а не в коде.

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

не знаю, если это ваша проблема @Phil.

если нет, не могли бы вы предоставить больше информации?

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