Asp.Netコアdbcontextの問題

asp.net-core entity-framework-core

質問

私はAsp.netコアアプリケーションを作成し、データベースに接続しようとしています。 startup.csファイルのConfigureServicesメソッドの次のコード行でエラーが発生します。私が得ているエラーは、値をnullにすることはできません。 web.configファイルのCustomerOrderEntitiesキーが見つからないようです。問題が何であるかわからない

services.AddDbContext<CustomerOrderEntities>(options =>
                  options.UseSqlServer(Configuration.GetConnectionString("CustomerOrderEntities")));

Startup.cs

 public IServiceProvider ConfigureServices(IServiceCollection services)
        {
services.AddDbContext<CustomerOrderEntities>(options =>
              options.UseSqlServer(Configuration.GetConnectionString("CustomerOrderEntities")));

 AutoMapperConfiguration.Configure();

            // Create the container builder.
            var builder = new ContainerBuilder();

            // Register dependencies, populate the services from
            // the collection, and build the container. If you want
            // to dispose of the container at the end of the app,
            // be sure to keep a reference to it as a property or field.


            builder.RegisterType<UnitOfWork>().As<IUnitOfWork>();
            builder.RegisterType<DbFactory>().As<IDbFactory>();
            builder.RegisterType<CustomerRepository>().As<ICustomerRepository>();
            builder.RegisterType<ProductRepository>().As<IProductRepository>();
            builder.RegisterType<OrderRepository>().As<IOrderRepository>();



            builder.Populate(services);
            this.ApplicationContainer = builder.Build();

            // Create the IServiceProvider based on the container.
            return new AutofacServiceProvider(this.ApplicationContainer);
          }

Web.Config

<connectionStrings>

  <add name="CustomerOrderEntities" connectionString="metadata=res://*/EF.CustomerOrderContext.csdl|res://*/EF.CustomerOrderContext.ssdl|res://*/EF.CustomerOrderContext.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=test-PC\MSSQLSERVER2014;initial catalog=CodeFirstTest;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

  </connectionStrings>

受け入れられた回答

ASP.NET Coreの接続文字列はappsettings.jsonで定義されています。

"ConnectionStrings": {
    "CustomerOrderEntities": "Server=(localdb)\\mssqllocaldb;Database=aspnet-a3e892a5-6a9c-4090-bc79-fe8c79e1eb26;Trusted_Connection=True;MultipleActiveResultSets=true"
  },

接続文字列のケース名がCustomerOrderEntitiesである場合、nullが返されます。おそらく、そこにはありません。appsettings.jsonを確認してください。


人気のある回答

Appsettings.jsonの接続文字列が間違っています。完全な.netフレームワークまたは.netコアをターゲットにしているかどうかに関係なく、Asp.netコアのweb.configで接続文字列を設定することはできません。別の方法として、services.AddDbContext(options => options.UseSqlServer( "Your Connectionstring"))に接続文字列の値を入力します。詳細はこちらをご覧ください。

https://docs.microsoft.com/en-us/ef/core/



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ