Моя установка выглядит следующим образом:
- У меня есть еще один файл, реализующий остальную часть частичного класса dbContext
Код: Выделить всё
public partial class Schule_als_Staat_DbContext : DbContext
{
public Schule_als_Staat_DbContext()
{ }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
// Wenn bereits konfiguriert wurde, brauchen wir nicht nochmal
if (optionsBuilder.IsConfigured)
return;
DatenbankInfos? dbInfos = ConnectionInfoService.DatenbankInfos;
// Wenn dbInfo null ist, wird Benutzer auf Server-Info-Seite weitergeleitet
if (dbInfos == null)
{
Navigator.NavigateToPage(new ServerInformationenEntryPage());
return;
}
string dbConnectString = dbInfos.GetConnectString();
optionsBuilder.UseSqlServer(dbConnectString);
}
}
- Я также установил конфигурацию в файле .csproject для создания моделей времени компиляции при сборке приложения:
Код: Выделить всё
true
build
Код: Выделить всё
Unable to create a 'DbContext' of type 'Schule_als_Staat_DbContext'.
The exception 'The calling thread must be STA, because many UI components require this.'
was thrown while attempting to create an instance.
For the different patterns supported at design time, see https://go.microsoft.com/fwlink/?linkid=851728
Код: Выделить всё
public class SaSDesignTimeFactory : IDesignTimeDbContextFactory
{
public Schule_als_Staat_DbContext CreateDbContext(string[] args)
{
var optionsBuilder = new DbContextOptionsBuilder();
optionsBuilder.UseSqlServer("Server=localhost\\SQLEXPRESS;Database=schule-als-staat;Trusted_Connection=True;TrustServerCertificate=True;");
return new Schule_als_Staat_DbContext(optionsBuilder.Options);
}
}
Моя цель — обеспечить динамическую загрузку строки подключения с помощью функции «onConfiguring()». в dbContext, но также есть предварительно скомпилированные модели.
Кто-нибудь знает, как это исправить? Хотя это довольно новая технология.
Подробнее здесь: https://stackoverflow.com/questions/792 ... sing-net-9
Мобильная версия