Я создаю набор настольных приложений (C #, .NET Framework 4.7), которые используют одну базу данных и модели.Я использую Entity Framework 6 для настройки моделей базы данных.Чтобы избежать дублирования кода (моделей), я поместил все модели в отдельный класс «базы данных».В этом классе я также определяю DbContext
.
. При добавлении пакета EntityFramework
через NuGet в класс «database», поставщик базы данных EF для SQLServer LocalDB также автоматически устанавливается.
Запуск приложения без дальнейшей настройки вызовет инициализацию SQLServer LocalDB и будет использоваться для подключения к базе данных.
У меня есть две проблемы с конфигурацией «конечная точка базы данных».
1) Iхотите, чтобы фактическое приложение установило строку подключения к базе данных.Таким образом, каждое приложение, которое может работать на разных компьютерах, может иметь собственную строку подключения к базе данных, указывающую на один и тот же сервер базы данных.
Для этого я изменил свой текущий DbConext
в классе «database» наследующее:
public class MyDbContext : DbContext
{
public MyDbContext(string connectionString)
{
this.Database.Connection.ConnectionString = connectionString;
}
}
Теперь я могу определить строку подключения к базе данных через приложение, а не общий класс "database".
2) Я хочу определить механизм базы данных на уровне приложения,Так что я могу создать класс «database» как «универсальный класс» и определить того фактического поставщика базы данных EF, который также будет использоваться в приложении.
Как мне изменить мой общий класс «database» иприложения, позволяющие приложению решать, какой поставщик базы данных EF следует использовать?