|
1 / 1 / 0
Регистрация: 24.08.2014
Сообщений: 16
|
|
Конфигурирование Entity Framework в отдельной сборке02.02.2016, 19:28. Показов 10536. Ответов 18
Всем привет!
У меня такая проблема. Я хочу спрятать всю логику доступа к бд в отдельной сборке. Но, при первом обращении к бд, приложение падает с ошибкой "Исключение типа "System.InvalidOperationException" возникло в EntityFramework.dll, но не было обработано в коде пользователя Дополнительные сведения: Для поставщика ADO.NET с неизменяемым именем "System.Data.SqlClient" не найден поставщик Entity Framework. Убедитесь, что поставщик зарегистрирован в разделе "entityFramework" файла конфигурации приложения. Дополнительные сведения см. на странице http://go.microsoft.com/fwlink/?LinkId=260882." Вся поставщики и conection strings указаны в конфиг файле этой зависимой сборке. На msdn читал, что все конфигурации должны быть прописаны в конфиге исполняемой сборки. Но в таком случае придется тянуть EF в основную сборку, чего быть не должно Собственно вопрос. Как заставить Ef использовать конфигурации в зависимой сборке?
0
|
|
| 02.02.2016, 19:28 | |
|
Ответы с готовыми решениями:
18
В чем разница между Entity Framework и Entity Framework Core? Entity Framework. Удаление entity без удаления связей Entity Framework 6 |
|
14314 / 9400 / 1355
Регистрация: 21.01.2016
Сообщений: 35,452
|
|
| 03.02.2016, 07:02 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 24.08.2014
Сообщений: 16
|
||
| 03.02.2016, 09:08 [ТС] | ||
|
"Исключение типа "System.InvalidOperationException" возникло в mscorlib.dll, но не было обработано в коде пользователя Дополнительные сведения: Не удалось загрузить тип поставщика Entity Framework "System.Data.Entity.SqlServer.SqlProvide rServices, EntityFramework.SqlServer", зарегистрированный в файле конфигурации приложения для поставщика ADO.NET с неизменяемым именем "System.Data.SqlClient". Проверьте, чтобы использовалось полное имя сборки и сборка была доступна в работающем приложении. Дополнительные сведения см. в разделе http://go.microsoft.com/fwlink/?LinkId=260882" Однако если сделать эту зависимую сборку исполняемой и попробовать в ней подергать Ef, то все работает Добавлено через 2 минуты Самое интересное, что в предыдущем проекте моему напарнику удалось сконфигурировать провайдеров прямо в конфиге зависимой сборки
0
|
||
|
14314 / 9400 / 1355
Регистрация: 21.01.2016
Сообщений: 35,452
|
|||
| 03.02.2016, 09:15 | |||
Проблема, в неверно настроенном конфиге. По мимо самой строки подключения должны быть и настроены поставщики EF.
0
|
|||
|
1 / 1 / 0
Регистрация: 24.08.2014
Сообщений: 16
|
|||||||
| 03.02.2016, 09:25 [ТС] | |||||||
|
Вот кусок конфига:
Может я что то не понимаю.. А про предыдущий проект я сказал, что удалось сконфигурировать провайдеров прямо в конфиге ЗАВИСИМОЙ сборки
0
|
|||||||
|
14314 / 9400 / 1355
Регистрация: 21.01.2016
Сообщений: 35,452
|
|
| 03.02.2016, 09:55 | |
|
Да, боюсь, что вы правы. Я провёл эксперимент и пришёл к заключению, что чтобы использовать сборку с EF, в конфиг основного приложения придётся перенести настройки из конфига DLL-ки и подключить EF в зависимости исполняемой сборки.
Лично я вам тут подсказать ничего не смогу, извините ![]() Но буду рад узреть решение от кого-нибудь, кто "в теме".
0
|
|
|
1 / 1 / 0
Регистрация: 24.08.2014
Сообщений: 16
|
||
| 03.02.2016, 10:04 [ТС] | ||
![]() https://github.com/Apostol59/E... /Endowment Все провайдеры полностью сконфигурированы в Data Layer И все прекрасно работает. Может вы увидите что то, чего не вижу я ![]() Напарник сказал, что он танцевал с бубном два дня, но не помнит, как у него это получилось
0
|
||
|
14314 / 9400 / 1355
Регистрация: 21.01.2016
Сообщений: 35,452
|
||||||
| 03.02.2016, 10:43 | ||||||
|
panya911, вы таки будете смеяться, но я разобрался))) Всё как всегда оказалось крайне просто и тупо: моему приложение (и, в теории, вашему сейчас) просто не хватало библиотеки "EntityFramework.SqlServer.dll" в папке с исполняемым файлом. Причём в app.config самого приложение никакой конфигурации указывать не требуется - достаточно строки подключения (да и ту можно передать в библиотеку другими способами). Вот пример моего app.config:
- исполняемая сборка - либа с кодом EF - EntityFramework.dll - EntityFramework.SqlServer.dll В моём случае этого оказалось достаточно. Никаких зависимостей в исполняемой сборке от EF нет (таки я был прав со своим первым комментарием). Ваш проект (который вы выложили для ознакомления) потому и работал, что в папку bin веб-приложения падали все библиотеки, включая EntityFramework.SqlServer.dll, что и привело к работоспособности проекта.
1
|
||||||
|
1 / 1 / 0
Регистрация: 24.08.2014
Сообщений: 16
|
||
| 03.02.2016, 15:09 [ТС] | ||
|
0
|
||
|
14314 / 9400 / 1355
Регистрация: 21.01.2016
Сообщений: 35,452
|
|
| 03.02.2016, 15:11 | |
|
Она подтягивает, если для вышеуказанной либы Copy Local установлено в True (по умолчанию). И в папке с DLL-кой с EF кодом нужные зависимости должны лежать...
0
|
|
|
1 / 1 / 0
Регистрация: 24.08.2014
Сообщений: 16
|
|
| 03.02.2016, 15:16 [ТС] | |
|
0
|
|
|
14314 / 9400 / 1355
Регистрация: 21.01.2016
Сообщений: 35,452
|
|
| 03.02.2016, 15:22 | |
|
Это потому, что я как дворник таджикский свои мысли излагаю
![]() Библиотеки EntityFramework.dll и EntityFramework.SqlServer.dll должны упасть в папку Release\Debug проекта DLL-файла в котором вы разместили код, использующий EF. Если вы используете эту DLL-ку в другом проекте, то это (похоже) не заставит студию скопировать вам зависимости этой библиотеки - только саму библиотеку. Я в этом вопросе не сильно разбираюсь (пока что), но думаю, что в студии должна быть нужная галочка "сделать зашибись".
0
|
|
|
1 / 1 / 0
Регистрация: 24.08.2014
Сообщений: 16
|
|||
| 03.02.2016, 15:26 [ТС] | |||
|
Добавлено через 52 секунды Там так же нет SqlServer.dll
0
|
|||
|
14314 / 9400 / 1355
Регистрация: 21.01.2016
Сообщений: 35,452
|
||
| 03.02.2016, 15:31 | ||
|
Да, и это странно
![]() Добавлено через 1 минуту Добавлено через 3 минуты В любом случае, приложение находит где-то эту библиотечку, иначе бы не заработало оно у вас.
0
|
||
|
1 / 1 / 0
Регистрация: 24.08.2014
Сообщений: 16
|
|||
| 03.02.2016, 15:47 [ТС] | |||
![]() Добавлено через 3 минуты
0
|
|||
|
14314 / 9400 / 1355
Регистрация: 21.01.2016
Сообщений: 35,452
|
|
| 03.02.2016, 15:50 | |
|
Ну это вопрос углублённого изучения документации. Думаю нам обоим это не повредит. Но на данный момент мы с вами эту тему одолели
0
|
|
|
1 / 1 / 0
Регистрация: 24.08.2014
Сообщений: 16
|
||
| 03.02.2016, 15:51 [ТС] | ||
|
0
|
||
|
14314 / 9400 / 1355
Регистрация: 21.01.2016
Сообщений: 35,452
|
|
| 03.02.2016, 15:54 | |
|
Вот тут я затрудняюсь, что-то умное ответить. У меня оно работает в таком виде. Может быть EF использует настройки по умолчанию...
1
|
|
|
1 / 1 / 0
Регистрация: 24.08.2014
Сообщений: 16
|
|
| 03.02.2016, 16:00 [ТС] | |
|
эх. Но все равно спасибо
0
|
|
| 03.02.2016, 16:00 | |
|
Помогаю со студенческими работами здесь
19
Entity framework One vs Zero-or-One Мистика Entity Framework using hierarchyid in entity framework Использовать ли Entity Framework? Entity framework savechange() Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|