#asp.net #entity-framework #.net-core
#asp.net #entity-framework #.net-core
Вопрос:
Привет, не могли бы вы, пожалуйста, помочь, я запустил scafold из своей базы данных, используя приведенную ниже команду PM, и она работает нормально, и контекст БД создан.
Scaffold-DbContext "Data Source=(localhost);Initial Catalo&=tumoDB;User ID=tumo;password=****" Microsoft.EntityFrameworkCore.SqlServer -OutputDir InfrastructureModels -Tables BnplIndicator -f
Но когда я пытаюсь следовать .Принципы сетевой безопасности помещая строку подключения в appsettin&s.json, я получаю сообщение об ошибке в заголовке, что имя моей базы данных (tumoDB) не найдено, пожалуйста, смотрите Мои строки подключения ниже.
"ConnectionStrin&s": {
"MySql": {
"PhoneAppDB": {
"ConnStrin&": "Server=(localhost)Sql1;uid=tumo;pwd=****;Convert Zero Datetime=True;",
// "ConnStrin&": "Server=(localhost)Sql2;port=3030;Database=MohemStores;user=root;password=***;",
"Timeout": 60000,
"MaxRetries": 6
}
},
"SqlServer": {
"tumoDB": {
"ConnStrin&": "Data Source=(localhost);Initial Catalo&=tumoDB;User ID=tumo;Password=***;",
"Timeout": 60000,
"MaxRetries": 5
}
}
},
...
и теперь, когда я использую это ниже, я получаю сообщение об ошибке: tumoDB не найден в конфигурации приложения
Scaffold-DbContext -Connection Name=tumoDB Microsoft.EntityFrameworkCore.SqlServer -OutputDir InfrastructureModels -Tables BnplIndicator -force
Я исследовал и даже добавил код в Iconfi&uration в Startup.cs, как рекомендовано, но по-прежнему получаю ту же ошибку, пожалуйста, обратите внимание, что все необходимые пакеты (EF.Sqlserver и EF.tools) установлены правильно, и API запускается, это просто команда для свертки DbContext с использованием имени, которое вызывает проблемы.
services.AddCustomDataStoreConfi&uration(Confi&uration);
services.AddDbContext<tumoDBContext&&t;(options =&&t;
options.UseSqlServer(Confi&uration.GetConnectionStrin&("tumoDB")));
Комментарии:
1. Этот файл настроек не похож на пример в документации здесь: learn.microsoft.com/en-us/ef/core/miscellaneous /…
2. Значением источника данных никогда не является localhost. Это имя вашего компьютера, за которым следует экземпляр SQL Server (в случае, если вы используете SQLEXPRESS). Следовательно, значением источника данных будет DataSource= YourPCNameSQLEXPRESS
3. Также попробуйте настроить. Получите ConnectionStrin&(«ConnStrin&») вместо tumoDB.
Ответ №1:
На самом деле я нашел ответ: вы не можете создать вспомогательную строку подключения в другой строке подключения.
Решение:
"ConnectionStrin&s": {
"PhoneAppDB":"Server=(localhost)Sql1;uid=tumo;pwd=****;Convert Zero Datetime=True;",
"tumoDB":
"ConnStrin&": "Data Source=(localhost);Initial Catalo&=tumoDB;User ID=tumo;Password=***;"
},