Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
29.07.2015, 10:54
|
|||
---|---|---|---|
|
|||
EF6 DbConfiguration и 2 базы данных |
|||
#18+
День добрый, Background Приложение работает с 2мя базами данных, для которых написаны 2 DLL. Контекст имеет следующий вид Код: vbnet 1. 2. 3. 4. 5. 6.
Созданы 2 класса Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.
Проблема Все это работает при условии что в приложении подключение к 1ой базе данных. Если 2 базы данных то выдает следующую ошибку An instance of 'EfDbConfiguration' was set but this type was not discovered in the same assembly as the 'test1' context. Either put the DbConfiguration type in the same assembly as the DbContext type, use DbConfigurationTypeAttribute on the DbContext type to specify the DbConfiguration type, or set the DbConfiguration type in the config file. See http://go.microsoft.com/fwlink/?LinkId=260883 for more information.* Подключение к первой базе создается нормально, проблема возникает в конструкторе при создании второго контекста Решение которое вижу я это создать класс DbConfiguration в отдельной DLL со своим Namespace и подрубать его в каждую DLL которая создана для получения данных с SQL Подскажите плизз уважаемые что Вы в данном случае делаете? Очень не хочется указывать ConnectionString в App.config | Web.config самого приложения. Хочется их оставить в DLL где создан слой и репозитории. В гугле нашел вот это http://stackoverflow.com/questions/20308378/configure-multiple-database-entity-framework-6 Но вменяемого ответа там не увидел. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.07.2015, 11:34
|
|||
---|---|---|---|
EF6 DbConfiguration и 2 базы данных |
|||
#18+
Артем GОчень не хочется указывать ConnectionString в App.config | Web.config самого приложения. А придется. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.07.2015, 12:08
|
|||
---|---|---|---|
EF6 DbConfiguration и 2 базы данных |
|||
#18+
Артем GПодскажите плизз уважаемые что Вы в данном случае делаете?Зависит от... Когда тупо перечисляем строки в секции connectionStrings, когда отдельного наследника ConfigurationSection реализуем, когда целый GUI для настроек лепим и в базе храним... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.07.2015, 12:56
|
|||
---|---|---|---|
|
|||
EF6 DbConfiguration и 2 базы данных |
|||
#18+
skyANAАртем GПодскажите плизз уважаемые что Вы в данном случае делаете?Зависит от... Когда тупо перечисляем строки в секции connectionStrings, когда отдельного наследника ConfigurationSection реализуем, когда целый GUI для настроек лепим и в базе храним... Ой а как вы это делаете .... коротко а то я не могу ни воспользоваться не наследовать от System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection так как EntityFrameworkSection Friend ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.07.2015, 13:07
|
|||
---|---|---|---|
|
|||
EF6 DbConfiguration и 2 базы данных |
|||
#18+
когда писал как вы это делаете имел ввиду вот это автор когда отдельного наследника ConfigurationSection реализуем ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.07.2015, 15:59
|
|||
---|---|---|---|
|
|||
EF6 DbConfiguration и 2 базы данных |
|||
#18+
AxeleronАртем GОчень не хочется указывать ConnectionString в App.config | Web.config самого приложения. А придется. Вот совсем не понимаю. Если это работает в App.config то почему нельзя реализовать классами? А если можно то как? Вот app.config созданный EF6 Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Вот как я реализую app.config в классах Эти строки - defaultConnectionFactory <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> <parameters> <parameter value="mssqllocaldb" /> </parameters> Вот так Friend Class DbConfigurationHelper Inherits Entity.DbConfiguration Friend Sub New() SetDefaultConnectionFactory(New Entity.Infrastructure.LocalDbConnectionFactory("mssqllocaldb")) End Sub End Class ---------------------------------------- Вот эти строки - providers <providers> <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> </providers> Вот так Friend Class DbConfigurationHelper Inherits Entity.DbConfiguration Friend Sub New() SetProviderServices(Entity.SqlServer.SqlProviderServices.ProviderInvariantName, Entity.SqlServer.SqlProviderServices.Instance) End Sub End Class ---------------------------------------- Вот эти строки - connectionString <connectionStrings> <add name="***" connectionString="data source=***;initial catalog=test1;persist security info=True;user id=***;password=***;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" /> </connectionStrings> Реализую вот так Friend Class DbConnectionHelper Friend Shared Function ConnectionString() As String Dim sqlbuilder As New SqlClient.SqlConnectionStringBuilder sqlbuilder.DataSource = "***" sqlbuilder.InitialCatalog = "test1" sqlbuilder.UserID = "***" sqlbuilder.Password = "***" sqlbuilder.PersistSecurityInfo = True sqlbuilder.MultipleActiveResultSets = True sqlbuilder.ApplicationName = "EntityFramework" Return sqlbuilder.ConnectionString End Function End Class ---------------------------------------- Остается не реализованным только вот эти строки Как это сделать пока ума не приложу. Гугл не хотит помогать :) <configSections> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </configSections> Вопрос: а есть класс connectionStrings в который можно добавлять коннекшены как в строке подключения? <connectionStrings> <add name="***" connectionString="data source=***;initial catalog=test1;persist security info=True;user id=***;password=***;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" /> </connectionStrings> ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.07.2015, 16:36
|
|||
---|---|---|---|
|
|||
EF6 DbConfiguration и 2 базы данных |
|||
#18+
Вот нашел пару ссылок. Выглядят полезно. Надеюсь мне помогут в решение моей проблемы Нашел Connection String Settings Collection: https://msdn.microsoft.com/en-US/library/2tw134k3(v=vs.80).aspx Нашел Custom Configuration Sections: https://msdn.microsoft.com/en-us/library/System.Configuration.ConnectionStringSettingsCollection(v=vs.110).aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.07.2015, 18:40
|
|||
---|---|---|---|
EF6 DbConfiguration и 2 базы данных |
|||
#18+
Артем GskyANAпропущено... Зависит от... Когда тупо перечисляем строки в секции connectionStrings, когда отдельного наследника ConfigurationSection реализуем, когда целый GUI для настроек лепим и в базе храним... Ой а как вы это делаете .... коротко а то я не могу ни воспользоваться не наследовать от System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection так как EntityFrameworkSection Friendесли коротко, то смотрите от какого класса наследуется EntityFrameworkSection и делайте по аналогии ... |
|||
:
Нравится:
Не нравится:
|
|||
|
30.07.2015, 22:54
|
|||
---|---|---|---|
|
|||
EF6 DbConfiguration и 2 базы данных |
|||
#18+
Проект нужно сдавать срочно поэтому оставил временно следующее решение. Уж не знаю на сколько это правильно, но работает. Так как в проекте часто бывает 2 и более баз данных под которые создаются DLL (слой и репозитории) очень хочется чтобы их конекшены были в их DLLках. Во всех DLLках создавал 2 класса: Connection & Configuration. Проблема возникала со второй второй длл при попытки считать данные. Ругалось на Configuration. То что Configuration уже создан но в другом пространстве имен. Решение пока такое. Вынес Configuration в отдельную DLL. Подключаю ее в каждую DLL которая должна давать доступ к базе. PS. Эта схема работает только в самом приложении, а вот если в приложение добавлена DLL в нутри которой должно происходить считывание данных - это уже не работает. Хотя работало когда настройки были в app.config ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=20&mobile=1&tid=1401314]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 339ms |
total: | 474ms |
0 / 0 |