관계형 저장소는 사용할 DbConnection 또는 연결 문자열을 지정하지 않고 구성되었습니다.

asp.net asp.net-core c# entity-framework entity-framework-core

문제

내가 asp.net vnext 및 ef7 내가이 오류가 점점 사용자를 추가하려면 원하는 사용 :

관계형 저장소는 사용할 DbConnection 또는 연결 문자열을 지정하지 않고 구성되었습니다.

이게 뭐야?

내 앱 시작을 고려해보십시오.

using DomainModels;
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting;
using Microsoft.AspNet.Routing;
using Microsoft.Framework.ConfigurationModel;
using Microsoft.Framework.DependencyInjection;
using Presentation.DataAccessLayer.Context;
using Microsoft.AspNet.Identity;
namespace Presentation
{
    public class Startup
    {
        public Startup(IHostingEnvironment env)
        {
            Configuration = new Configuration()
                .AddJsonFile("config.json")
                .AddEnvironmentVariables();
        }

        public IConfiguration Configuration { get; set; }

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddEntityFramework().AddSqlServer().AddDbContext<ApplicationContext>();
            services.AddDefaultIdentity<ApplicationContext, ApplicationUser, IdentityRole>(Configuration);
            services.AddMvc();
        }

        public void Configure(IApplicationBuilder app)
        {
            app.UseStaticFiles();
            app.UseIdentity();
            app.UseMvc(
                routes =>
                {
                    routes.MapRoute("default", "{controller}/{action}/{id?}",
                        new {controller = "Home", action = "Index"});
                });
        }
    }
}

이것은 내 config.json입니다.

{
    "Data": {
        "DefaultConnection": {
            "Connectionstring": "Data Source=.\\sqlexpress;Initial Catalog=CraftCenter;Integrated Security=True;"
        }
    },
    "EntityFramework": {
        "ApplicationDbContext": {
            "ConnectionStringKey": "Data:DefaultConnection:ConnectionString"
        }
    }

}

수락 된 답변

문제는 귀하의 DbContext 클래스 이름이 귀하의 구성에 지정된 이름과 같지 않다는 것입니다.

예를 들어 MembershipDbContext 라는 DbContext가있는 경우 EntityFramework 내부의 속성을 통해 사용해야하는 연결 문자열을 지정할 수 있습니다.

{
"Data": {
    "Membership": {
        "ConnectionString": "Server=(localdb)\\mssqllocaldb;Database=Membership;Trusted_Connection=True;MultipleActiveResultSets=true"
    }
},
"EntityFramework": {
    "MembershipDbContext": {
        "ConnectionStringKey": "Data:Membership:ConnectionString"
    }
}

이것은 코드 내에서 연결 문자열 키를 지정하는 것보다 깔끔합니다.

귀하의 경우, DbContext 이름은 ApplicationContext 이며 구성에서 지정한 이름은 일치하지 않는 ApplicationDbContext 입니다.


인기 답변

"EntityFramework": {
    "MembershipDbContext": {
        "ConnectionStringKey": "Data:Membership:ConnectionString"
    }
}

변경 ConnectionStringKey 할 수 ConnectionString 나를 위해 일을.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.