Ошибка строки подключения к объектам данных
Должно быть, я где-то что-то изменил, но, черт побери, могу ли я понять, что это такое.
У меня есть 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="C:\Users\Phil\Documents\Visual Studio 2010\Projects\JobTrack\trunk\JobTrack\App_Data\JobTrack.MDF";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 в другом проекте, посмотрите на
Единственное, что я могу видеть, что может вызвать проблемы, это использование жестко закодированного пути. Вы пытались вставить \?
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.
если нет, не могли бы вы предоставить больше информации?