У меня проблема со строкой подключения, которая находится внутри файла конфигурации json, как обычно:
- Я создал класс: applicationDbcontext
- Я сделал DbSet {get; set;}
- интегрировать его в контроллер
- добавить его в службы
Я прочитал и попробую все советы, вставленные в соответствующий вопрос: asp.net core 2.0 - значение не может быть нулевым.Имя параметра: connectionString Но ни один из них не работает со мной. Вот моя реализация, я надеюсь, что кто-то может мне помочь, спасибо
A_ DB Context:
public class ApplicationDbContext:DbContext
{
public ApplicationDbContext(DbContextOptions options) : base(options)
{
Database.EnsureCreated();
}
public DbSet<Person> Persons { get; set; }
}
}
B_ Настройки приложения: config.json и config.development.json
{
"ConnectionString": {
"testConnection": "Server=(localdb)\\mssqllocaldb;Database=mvc_db;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*"
}
C_ Инъекция служб
Запуск:
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.Json")
.AddJsonFile("appsettings.Development.Json", true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}
Службы конфигурации:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options => {
options.UseSqlServer(Configuration.GetConnectionString("testConnection"));
});
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
D_ Injection Into Controllers:
private readonly ApplicationDbContext _db;
public PersonController(ApplicationDbContext db)
{
_db = db;
}
IEnumerable<Person> People { get; set; }
public IActionResult Index()
{
People = _db.Persons.ToList();
return View(People);
}
Я попытался вставить всю строку подключения в конфигурацию. GetConnectionString ("Здесь");И изменить расположение строки подключения сверху вниз и наоборот.Но ничто не решает проблему возврата нулевого значения в ConnectionString.Любая помощь, пожалуйста Спасибо