Getting Exception for Entity Framework 1.1 Kernel

I get a null exception for configure Service. I am using Entity Framework 1.1, previously used core 1.0 and have no problem, not sure if I'm missing here

Error in Startup.cs -> at Services.AddDbContext ...

{System.ArgumentNullException: Value cannot be null. Parameter name: connectionString at Microsoft.EntityFrameworkCore.Utilities.Check.NotEmpty(String value, String parameterName) at Microsoft.EntityFrameworkCore.SqlServerDbContextOptionsExtensions.UseSqlServer(D bContextOptionsBuilder optionsBuilder, String connectionString, Action`1 sqlServerOptionsAction) at App.WebDashboard.Startup.<ConfigureServices>b__4_0(DbContextOptionsBuilder options) at Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions.DbContextOptionsFactory[TContext](IServiceProvider applicationServiceProvider, Action`2 optionsAction) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProvider provider) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, ServiceProvider provider) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProvider provider) at Microsoft.Extensions.DependencyInjection.ServiceProvider.<>c__DisplayClass16_0.<RealizeService>b__0(ServiceProvider provider) at Microsoft.Extensions.Internal.ActivatorUtilities.GetService(IServiceProvider sp, Type type, Type requiredBy, Boolean isDefaultParameterRequired) at lambda_method(Closure , IServiceProvider , Object[] ) at Microsoft.AspNetCore.Mvc.Internal.TypeActivatorCache.CreateInstance[TInstance](IServiceProvider serviceProvider, Type implementationType) at Microsoft.AspNetCore.Mvc.Controllers.DefaultControllerFactory.CreateController(ControllerContext context) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker. <InvokeNextResourceFilter>d__22.MoveNext()} 

Startup.cs

  public void ConfigureServices(IServiceCollection services) { // Add framework services. services.AddApplicationInsightsTelemetry(Configuration); services.AddDbContext<TestDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("UCASAppDatabase"))); services.AddMvc(); } 

Connection string in appsetting.json

 "ConnectionStrings": { "UCASAppDatabase": "Data Source=mydatasource;Initial Catalog=UCAS-DB;Integrated Security=True" } 

Dbcontext

  public class TestDbContext : DbContext { public TestDbContext(DbContextOptions<TestDbContext> options) : base(options) { } public DbSet<TestModel> TestModels { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<TestModel>().ToTable("TestTable"); } } 

Entity class

 [Table("TestTable")] public class TestModel { [Key] public int ID { get; set; } public string Name { get; set; } } 

Controller class where I try to read data

 public class HomeController : Controller { private readonly TestDbContext _context; public HomeController(TestDbContext context) { this._context = context; } public IActionResult About() { var query = (from b in _context.TestModels select b).ToList(); ViewData["Message"] = "Your application description page."; return View(); } 

Appsettings.json

  public Startup(IHostingEnvironment env) { var builder = new ConfigurationBuilder() .SetBasePath(env.ContentRootPath) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) .AddEnvironmentVariables(); 
+6
source share
2 answers

found the answer, you need to sort the connection-String in appsettings.json

 "Data": { "UCASAppDatabase": { "ConnectionString": "Data Source=mysource;Initial Catalog=UCAS-DB;Integrated Security=True;Persist Security Info=True" } } 

and in Startup.cs

 public void ConfigureServices(IServiceCollection services) { services.AddApplicationInsightsTelemetry(Configuration); services.AddDbContext<TestDbContext>(options => options.UseSqlServer(Configuration["Data:UCASAppDatabase:ConnectionString"])); services.AddMvc(); } 
+4
source

By convention, the file should be called appsettings.json, not appsetting.json. Can you make sure your startup file references it correctly?

0
source

Source: https://habr.com/ru/post/1012564/


All Articles