Почему я получаю эту ошибку при попытке открыть базу данных MDF через путь / имя файла в Entity Framework? - PullRequest
0 голосов
/ 10 ноября 2009

Я перенес приложение из LINQ-to-SQL в Entity Framework и изменил строку:

using (var db = new MainDataContext(SystemHelpers.GetDatabaseConnectionString()))

до

using (var db = new MainDataEntities(SystemHelpers.GetDatabaseConnectionString()))

, где SystemHelpers.GetDatabaseConnectionString()) - путь файла к файлу .mdf .

Он работает в LINQ-to-SQL, но в Entity Framework приведенная выше строка дает мне ошибку :

Формат инициализации Строка конфликтует с спецификация, которая начинается с '0';

лучший перевод, который я могу сделать с немецкого:

"Das Format der Initialisierungszeichenfolge stimmt nicht mit der Spezifikation überein, die bei Index '0' beginnt. "

Ответы [ 2 ]

2 голосов
/ 10 ноября 2009

Строка соединений Entity Framework более сложная, чем стандартные строки соединения.

Они состоят из трех частей:

  1. Строка подключения провайдера => это то, что вы предоставляете
  2. Метаданные => где EF должен получить CSDL, MSL и SSDL от (т.е. концептуальная модель, Модель картографирования и хранения)
  3. имя провайдера => т.е. для SQL сервер это вообще System.Data.SqlClient

Вот как это может выглядеть:

metadata = res: ///Model.csdl | res: ///Model.ssdl | res: //*/Model.msl; provider = System.Data.SqlClient; строка подключения поставщика = "Источник данных =. \ SQLEXPRESS; Исходный каталог = База данных; Интегрированная безопасность = Истина; Объединение = Ложь; MultipleActiveResultSets = Истина"

Надеюсь, это поможет

Alex

1 голос
/ 10 ноября 2009

Строки соединения EF не могут быть только строкой соединения с БД. Они содержат строку подключения к БД, но имеют гораздо больше информации. Похоже, вы пытаетесь использовать только строку подключения к БД. Это не сработает. См. Этот пример для как построить строку соединения EF .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...