C # ConnectionString для библиотеки классов репозитория EF - PullRequest
1 голос
/ 03 ноября 2011

У меня есть база данных и библиотека классов C #, которая выступает в качестве хранилища для доступа к объектам из базы данных с использованием Entity Framework.При попытке использовать эту сборку репозитория в других проектах я сталкиваюсь с трудностями;Я предполагаю, что это происходит из-за строки подключения, поскольку я получаю следующую ошибку:

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

Я добавил файл App1.config в проект и добавил ту же строку подключения, которую я успешно использовал при создании базы данных:

<add name="EDSEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SQLite;provider connection string='data source=&quot;C:\Documents and Settings\hmay\My Documents\My Projects\Timetabler\DataSets\EDS.db&quot;;foreign keys=true'" providerName="System.Data.EntityClient" />

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

С уважением

Ответы [ 2 ]

3 голосов
/ 03 ноября 2011

Добавление app1.config ничего не изменит. App.config и web.config являются файлами с особым именем, и они должны быть названы именно так. Однако, если вы используете вашу библиотеку в нескольких приложениях, я бы реорганизовал ее.

Измените класс DbContext, чтобы в нем был один конструктор, который принимает строку подключения и переносит ответственность за создание строки подключения в приложение, а не в библиотеку. Нехорошо иметь библиотеку классов, которая ожидает, что ваше приложение будет иметь конкретную именованную запись в разделе строк подключения своей конфигурации.

0 голосов
/ 03 ноября 2011

попробуйте обрезать ссылки метаданных на metadata=res://*

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