|
EntityFramework не находит ConnectionString в Аpp.congig
|
|||
---|---|---|---|
#18+
Делаю первые шаги в EntityFramework. MVS 2013 Ultimate Edition SP 4 EntityFramework 6.1.3 Все, как по учебнику. Создаю шаблон из базы. Делаю new Connection. Указываю имя SQL сервера и имя базы. Тест проходит. Создается схема. далее пишу две строки: Код: c# 1. 2.
и на второй строке падаю с ошибкой: No connection string named 'BackgroundSeContext' could be found in the application config file. в System.Data.Entity.Internal.LazyInternalConnection.get_ConnectionHasModel() в System.Data.Entity.Internal.LazyInternalContext.InitializeContext() в System.Data.Entity.Internal.InternalContext.Initialize() в System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) в System.Data.Entity.Internal.Linq.InternalSet`1.Initialize() в System.Data.Entity.Internal.Linq.InternalSet`1.GetEnumerator() в System.Data.Entity.Infrastructure.DbQuery`1.System.Collections.Generic.IEnumerable<TResult>.GetEnumerator() Смотрю в App.Config - всё на месте: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2015, 11:18 |
|
EntityFramework не находит ConnectionString в Аpp.congig
|
|||
---|---|---|---|
#18+
Нарыл вот что - автогенератор кода сгенерил такую вот строку: Код: c# 1. 2. 3. 4.
Я ее исправил таким образом: Код: c# 1. 2. 3. 4.
т.е убрал "name=" После этого connectionString начала определяться. Но теперь вылезла другая ошибка: No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient'. Make sure the provider is registered in the 'entityFramework' section of the application config file. Засада. Что делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2015, 16:01 |
|
EntityFramework не находит ConnectionString в Аpp.congig
|
|||
---|---|---|---|
#18+
Зарегистрировал провайдер насильно ручками в коде: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
Проблема решилась. Какие выводы? EF до сих пор очень сырой. Элементарные операции, которые должны делаться 'на лету', приходиться делать самому. Причем, для новичка в EF, это очень проблематично и занимает много времени. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2015, 18:43 |
|
EntityFramework не находит ConnectionString в Аpp.congig
|
|||
---|---|---|---|
#18+
vlsaf, Этого всего не надо. Просто строка конекции должна быть в самом web проекте. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2015, 19:10 |
|
EntityFramework не находит ConnectionString в Аpp.congig
|
|||
---|---|---|---|
#18+
У меня не web проект, и даже не winforms, а консольное приложение, которое должно обрабатывать данные в фоновом режиме. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2015, 19:12 |
|
EntityFramework не находит ConnectionString в Аpp.congig
|
|||
---|---|---|---|
#18+
vlsaf Какие выводы? EF до сих пор очень сырой. Элементарные операции, которые должны делаться 'на лету', приходиться делать самому. Причем, для новичка в EF, это очень проблематично и занимает много времени. Вы не правы. Код: xml 1. 2. 3.
Видите строчка providerName="System.Data.SqlClient" ? Без неё как EF должен догадаться, какой провайдер надо использовать? Или по-вашему, если EF не экстрасенс, то он сразу сырой? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2015, 19:22 |
|
EntityFramework не находит ConnectionString в Аpp.congig
|
|||
---|---|---|---|
#18+
vlsafЗарегистрировал провайдер насильно ручками в коде: это делается не кодом, а секцией в app.config Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2015, 19:25 |
|
EntityFramework не находит ConnectionString в Аpp.congig
|
|||
---|---|---|---|
#18+
vlsafДелаю первые шаги в EntityFramework. и после этих слов вы имеет право говорит что то про готовый продукт, который используют сотни прогеров и проектов? Вывод простой: не умеет готовить - не надо сразу ругаться на инструмент, может перечитать рецепт. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2015, 09:23 |
|
EntityFramework не находит ConnectionString в Аpp.congig
|
|||
---|---|---|---|
#18+
Рад, что у вас все работает. Но лично у меня быстрого старта не получается. До сих пор. Есть большое желание показать экран по скайпу, чтоб указали на ошибки, что делаю не так. Если кому-то будет не сложно, киньте письмо в личку. Буду очень признателен. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2015, 11:42 |
|
EntityFramework не находит ConnectionString в Аpp.congig
|
|||
---|---|---|---|
#18+
vlsafРад, что у вас все работает. Но лично у меня быстрого старта не получается. До сих пор. Есть большое желание показать экран по скайпу, чтоб указали на ошибки, что делаю не так. Если кому-то будет не сложно, киньте письмо в личку. Буду очень признателен. Создаёшь в студии новый проект, допустим ASP.NET MVC 5, там уже рабочий пример использования EF. Куда уж проще-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2015, 12:48 |
|
EntityFramework не находит ConnectionString в Аpp.congig
|
|||
---|---|---|---|
#18+
Хочется просто материться. Создал с нуля консольное приложение. Там все работает. Но у у меня рабочий проект - это библиотека. Там то почему косяки лезут? Делаю все тоже-самое. Один в один! ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2015, 13:00 |
|
EntityFramework не находит ConnectionString в Аpp.congig
|
|||
---|---|---|---|
#18+
vlsafХочется просто материться. Создал с нуля консольное приложение. Там все работает. Но у у меня рабочий проект - это библиотека. Там то почему косяки лезут? Делаю все тоже-самое. Один в один! Библиотека тащит инфу из конфига приложения, а не библиотеки. Т.е. если вы в библиотеке сделали app.config и туда добавили строку подключения, это не сработает. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2015, 13:02 |
|
EntityFramework не находит ConnectionString в Аpp.congig
|
|||
---|---|---|---|
#18+
Ну наконец-таки, лёд тронулся. А я два дня варился в собственном соку. Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2015, 13:10 |
|
EntityFramework не находит ConnectionString в Аpp.congig
|
|||
---|---|---|---|
#18+
hVosttБиблиотека тащит инфу из конфига приложения, а не библиотеки. Т.е. если вы в библиотеке сделали app.config и туда добавили строку подключения, это не сработает.А как-же тогда поступать? Мне EF нужно запускать именно из библиотеки. В основном приложении он не нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2015, 13:20 |
|
EntityFramework не находит ConnectionString в Аpp.congig
|
|||
---|---|---|---|
#18+
vlsafhVosttБиблиотека тащит инфу из конфига приложения, а не библиотеки. Т.е. если вы в библиотеке сделали app.config и туда добавили строку подключения, это не сработает.А как-же тогда поступать? Мне EF нужно запускать именно из библиотеки. В основном приложении он не нужен. Концепция такова: приложение настраивается в конфиге приложения. Все подключенные библиотеки также настраиваются в этот конфиге приложения. Вы же не настраиваете EF в его собственном конфиге, типа EntityFramework.config, правильно? было бы странно, это всего лишь библиотека, и как она будет использоваться решать приложению. Сама по себе библитека не работает. Так что тащите конфиг либы в конфиг приложения. И пусть это вас не расстраивает, это правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2015, 13:25 |
|
EntityFramework не находит ConnectionString в Аpp.congig
|
|||
---|---|---|---|
#18+
После того, как перетащил настройки app.config из проекта либы в основное приложение, то его из проекта либы можно удалять? (Его создал EF). Или он должен присутствовать и в либе и в основном проекте? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2015, 13:45 |
|
EntityFramework не находит ConnectionString в Аpp.congig
|
|||
---|---|---|---|
#18+
Оставил app.config и там и там. Ошибка The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer' registered in the application config file for the ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded. Make sure that the assembly-qualified name is used and that the assembly is available to the running application. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information. Буду смотреть на сайте microsoft? что опять не так. Или dll от EF тоже нужно в основное приложение добавлять? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2015, 14:00 |
|
EntityFramework не находит ConnectionString в Аpp.congig
|
|||
---|---|---|---|
#18+
vlsafИли dll от EF тоже нужно в основное приложение добавлять? Естественно! ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2015, 14:04 |
|
EntityFramework не находит ConnectionString в Аpp.congig
|
|||
---|---|---|---|
#18+
Да. Теперь все получилось. Еще раз спасибо, hVostt !!! ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2015, 14:09 |
|
EntityFramework не находит ConnectionString в Аpp.congig
|
|||
---|---|---|---|
#18+
vlsaf, может пригодится - тынц ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2015, 15:01 |
|
EntityFramework не находит ConnectionString в Аpp.congig
|
|||
---|---|---|---|
#18+
Получилось запустить dll с EF без установки EF в основную сборку и без добавления app.config в основную сборку. Для этого мы должны сделать 2 вещи. 1. Создать в коде connectionString Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
2. Добавить конструктор для вашего контекста. Конструктор должен использовать вашу строку подключения. Делаете в отдельном файле такую перегрузку: Код: c# 1. 2. 3. 4. 5. 6.
И теперь создаете новый объект, используя вашу строку: Код: c# 1.
Цветов не надо, можно пива ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2015, 10:16 |
|
EntityFramework не находит ConnectionString в Аpp.congig
|
|||
---|---|---|---|
#18+
vlsaf, Код: c# 1. 2. 3. 4. 5. 6. 7.
Вот так лучше, имхо: Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2015, 11:11 |
|
EntityFramework не находит ConnectionString в Аpp.congig
|
|||
---|---|---|---|
#18+
vlsafПолучилось запустить dll с EF без установки EF в основную сборку и без добавления app.config в основную сборку. а смысл? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2015, 14:52 |
|
EntityFramework не находит ConnectionString в Аpp.congig
|
|||
---|---|---|---|
#18+
hVostt, я объясню причины, почему это глупая затея 1. При деплое у приложения есть один конфиг, который настраивается соответствующим образом, например, при деплое на тест одна строка соединения, при деплое на боевой сервер другая, и при инсталляции конфигурируется один конфиг приложения, он может быть разнесён на несколько файлов, но по сути это один конфиг. 2. Если EF закрыть в отдельной сборке, так, чтобы в основном приложении не нужно было ссылаться на EF, значит нельзя будет произвести настройку EF в конфиге приложения, нельзя будет стандартно сменить провайдер, нельзя будет нормально проапгрейдить версию EF, не трогая сборку. Существенных причин закрывать EF в сборке вообще не вижу, если только сборка не подключается динамически (например через MEF) на манер плагина, в нормальной ситуации такие ковыряния приносят в последствии только боль людям, вынужденным дорабатывать и поддерживать подобные выкрутасы. Так что нафиг так делать не надо, если нет действительно обоснованных причин. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2015, 15:03 |
|
EntityFramework не находит ConnectionString в Аpp.congig
|
|||
---|---|---|---|
#18+
Смысл простой. dll будет записывать данные в базу. Подключать к своему проекту ее будут совсем другие люди, которые и знать не хотят о существовании EF и о всяких cоnnectionString'ах. Это внутренняя кухня самой dll. Внутри dll есть механизм, который позволяет знать, где она запущена и какой должен быть connectionString. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2015, 18:00 |
|
|
start [/forum/topic.php?fid=17&fpage=15&tid=1349575]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
97ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
76ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 238ms |
0 / 0 |