Моя настройка выглядит следующим образом: у меня есть файл который реализует остальную часть частичного класса 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);
}
}
Я также установил конфигурацию в файле проекта .csproj для создания моделей времени компиляции при сборке приложения:
Код: Выделить всё
true
build
Невозможно создать «DbContext» типа «Schule_als_Staat_DbContext».
Исключение «Вызывающий поток должен быть STA, поскольку этого требуют многие компоненты пользовательского интерфейса».
Это было выдано при пытаясь создать экземпляр.
Информацию о различных шаблонах, поддерживаемых во время разработки, см. на странице 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()< /code> в DbContext, но также имеет предварительно скомпилированные модели.
Кто-нибудь знает, как это исправить? Хотя это довольно новая технология.
Подробнее здесь: https://stackoverflow.com/questions/792 ... sing-net-9
Мобильная версия