Мы работаем с различными приложениями ASP.NET Core MVC 1.0. У нас есть 4-русов к каждому из наших приложений следующим образом:Entity Framework Core 1.0 Строки подключения
- DTO
- Repository (Entity Framework - Code First)
- служба (Business Logic)
- MVC (UI-MVC)
в настоящее время в наших хранилищах, которые обрабатывают все операции с базой данных мы жестко строки подключения к базе данных в DbContext следующим образом:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) {
optionsBuilder.UseSqlServer("Data Source=somedatabase.database.windows.net;Initial Catalog=database;Integrated Security=False;User ID=username;Password=password;Connect Timeout=60;Encrypt=True;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False;MultipleActiveResultSets=true");
}
Этот проект находится за пределами проекта MVC как автономный проект ASP.NET Core 1.0. Он также имеет пустой файл Program.cs в нем, который, как представляется, требуется для выполнения командных строк кода для базы данных (обновление dotnet ef migrations и обновление базы данных dotnet ef).
Причина, по которой у нас есть строка с жестким кодированием в DbConext, заключается в том, что, когда мы используем следующий код, мы получаем ссылку на объект, не установленную в экземпляр для исключения объекта, при выполнении команд dotnet ef.
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) {
optionsBuilder.UseSqlServer(ConfigurationManager.ConnectionStrings["StandardDatabase"].ConnectionString);
}
Однако, так как у нас есть Program.cs, если мы добавим Debug.WriteLine для строки подключения и запуска проекта, он делает возвращает правильную строку соединения, и если мы устанавливаем строку подключения в AppSettings .json в пользовательском интерфейсе, пользовательский интерфейс также будет успешно подключен.
ВОПРОС: Вышеупомянутый стек, что мы используем для нескольких «Micro Apps», что означает, у нас есть несколько проектов, которые подключаются к нескольким базам данных. Мы также хотим воспользоваться цепочками соединений Development, Staging and Production.
Если мы используем Connection Connection Connection String, все хорошо для ежедневных операций; однако, когда мы хотим использовать код Entity Frameworks в командных строках базы данных, нам нужно зайти в каждый репозиторий, который мы хотим обновить, и изменить DbContext на строку жесткого кодированного соединения, выполнить команды, а затем вернуть их обратно, когда это будет сделано , что становится довольно хлопотным.
ВОПРОС: ли мы просто делаем это неправильно, есть предпочтительная практика для установки в 1.0 стек Entity Framework Core, которая позволяет нам не следует вручную изменить DbContext но воспользоваться файлами конфигурации поперек доска?
Любое направление будет оценено!
Больше нет MVC6 !!! https://blogs.msdn.microsoft.com/webdev/2016/01/19/asp-net-5-is-dead-introducing-asp-net-core-1-0-and-net-core-1- 0/ – Tseng
Создать заводской метод (или фабричный класс), который управляет соединениями и возвращает Dbcontext –
Почему вы не используете обычную конфигурацию ASP.NET Core вместо использования ConfigurationManager? – juunas