Заменить строку подключения в Scaffold-DbContext - PullRequest
0 голосов
/ 10 июля 2020
• 1000 *
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            
            if (!optionsBuilder.IsConfigured)
            {
#warning To protect potentially sensitive information in your connection string, you should move it out of source code. See http://go.microsoft.com/fwlink/?LinkId=723263 for guidance on storing connection strings.
                optionsBuilder.UseSqlServer("Server=<servername>;Database=<databaseName>;Trusted_Connection=True");
            }
        }

Я пытался обновить его, чтобы использовать "DefalutConnection" в моих настройках приложения. json файл, но он не распознает Configuration. Я импортировал пространство имен using Microsoft.Extensions.Configuration;, но это все еще не решает проблему.

Я пытаюсь получить что-то вроде следующего: options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))

Не уверен, в каком направлении к go в решении этой проблемы. Это не проблема, или мне не хватает чего-то, чтобы получить это из настроек приложения. json?

Я предполагаю, что у DbCOntextOptionsBuilder нет метода для Configuration, и мне понадобится чтобы построить его сам ... но я тоже не уверен, как это сделать.

Спасибо за ваше время / внимание на это.

Решение, показанное для помощи другим, См. Отмеченный ответ ниже

Ошибка Unable to create an object of type 'ProfileContext'. For the different patterns supported at design time, see https://go.microsoft.com/fwlink/?linkid=851728

добавить public IConfiguration Configuration {get;}

вставить его в свой конструктор

public ContextDbName(IConfiguration configuration)
        {
            Configuration = configuration;
        }

обновите метод OnConfiguring

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            
            if (!optionsBuilder.IsConfigured)
            {
#warning To protect potentially sensitive information in your connection string, you should move it out of source code. See http://go.microsoft.com/fwlink/?LinkId=723263 for guidance on storing connection strings.
                optionsBuilder.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"));
                
            }
        }

Ответы [ 2 ]

1 голос
/ 10 июля 2020

Думаю, вам нужно добавить Configuration в конструктор DbContext.

0 голосов
/ 14 июля 2020

Выполняя исходный сценарий, созданный Scaffolding, во вновь созданном файле контекста я столкнулся с другими проблемами, связанными с внедрением зависимостей. Это заставило меня задуматься о Документах Microsoft .

Итак, я добавил инъекцию в свой файл запуска для моего недавно созданного класса Context, и, как и magi c, это сработало: D

Startup.cs :

services.AddDbContext<ApplicationDbContext>(options =>
                options.UseSqlServer(
                    Configuration.GetConnectionString("DefaultConnection")));
            services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
                .AddEntityFrameworkStores<ApplicationDbContext>();
            services.AddDbContext<ProfileContext>(options =>
                options.UseSqlServer(
                    Configuration.GetConnectionString("DefaultConnection")));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...