Я перевернул базу данных sql-сервера в соответствующие им классы и контекст, и все это, похоже, работало нормально.
В классе контекста min есть строка кода, указывающая на строку подключения, которая, если ее оставить, работает нормально, но строка подключения полностью встроена в файл контекста.
Я попытался закомментировать его вне контекста и добавить через раздел ConfigureServices
(чтобы я мог использовать строку conn
в appsettings.json ), используя
services.AddDbContext<myDBContext>(options => options.UseSqlServer(Configuration.GetConnectionString("dbconn")));
Но когда я бегу, я получаю ошибку: -
System.InvalidOperationException: 'Поставщик базы данных не был
настроен для этого DbContext. Поставщик может быть настроен
переопределение метода DbContext.OnConfiguring или с помощью AddDbContext
на поставщика услуг приложения. Если используется AddDbContext, то
также убедитесь, что ваш тип DbContext принимает
DbContextOptions<TContext>
объект в своем конструкторе и передает его
базовый конструктор для DbContext. '
Я пробовал множество вещей в Google, но всегда получаю одну и ту же ошибку, если я не раскомментирую жестко закодированную строку соединения в файле класса контекста.
Есть идеи, что я делаю не так?
Я перепробовал множество ответов Google, и у всех одна и та же ошибка: -
System.InvalidOperationException: 'Поставщик базы данных не был
настроен для этого DbContext. Поставщик может быть настроен
переопределение метода DbContext.OnConfiguring или с помощью AddDbContext
на поставщика услуг приложения. Если используется AddDbContext, то
также убедитесь, что ваш тип DbContext принимает
DbContextOptions<TContext>
объект в своем конструкторе и передает его
базовый конструктор для DbContext. '
Я комментирую это из контекстного класса: -
optionsBuilder.UseSqlServer("Server=MYSERVER\\MSSQL2017EXPRESS;Database=DBNAME;Trusted_Connection=True;user id=DBUSER;password=DBPASSWORD;");
И это то, что находится в файле startup.cs, но не работает: -
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
//My DB conn
services.AddDbContext<myDatabaseContext>(options => options.UseSqlServer(Configuration.GetConnectionString("dbconn")));
}
Мне нужно предоставить строку подключения из appsettings.json и не указывать ее жестко в файле класса контекста.