이 질문은 여러 번 묻지 만 아직 해결 방법을 찾지 못했습니다.DotNet 코어,이 DbContext에 대해 데이터베이스 공급자가 구성되어 있지 않습니다.
저는 DotNet Core에서 매우 새로 왔습니다. 내 문제는 간단한 "linq"명령을 사용하여 "Header"테이블에서 데이터를 선택하려고하지만 아래 오류가 발생했습니다.
추가 정보 : 이 DbContext에 대해 데이터베이스 공급자가 구성되어 있지 않습니다. 공급자는 DbContext.OnConfiguring 메서드를 재정의하거나 응용 프로그램 서비스 공급자에서 AddDbContext를 사용하여 구성 할 수 있습니다. AddDbContext가 사용되는 경우 DbContext 형식이 해당 생성자 의 DbContextOptions 개체를 수락하고 DbContext의 기본 생성자에 전달하는지 확인합니다.
내 컨트롤러입니다.
public HeaderModel GetHeaderInformation()
{
using(var context = new ApplicationDbContext())
{
var header = context.Headers.Select(x => new HeaderModel
{
colorCode = x.colorCode,
height = x.height,
Id = x.Id,
left = x.left,
top = x.top,
width = x.width
}).FirstOrDefault();
return header;
}
}
내 ApplicationDbContext는 다음과 같습니다.
public class ApplicationDbContext : IdentityDbContext<ApplicationUser> //DbContext
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
public ApplicationDbContext() : base()
{
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
// Customize the ASP.NET Identity model and override the defaults if needed.
// For example, you can rename the ASP.NET Identity table names and more.
// Add your customizations after calling base.OnModelCreating(builder);
}
public DbSet<Header> Headers { get; set; }
public DbSet<Menu> Menus { get; set; }
}
그리고 내 startup.cs입니다.
services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddApplicationInsightsTelemetry(Configuration);
services.AddIdentity<ApplicationUser, IdentityRole>().AddEntityFrameworkStores<ApplicationDbContext>().AddDefaultTokenProviders();
services.AddMvc();
도움 주셔서 감사합니다.
답장을 보내 주셔서 감사합니다. 사용중인 블록에서 내 dbContext를 새로 고치고 해당 DbSet <>을 사용하여 데이터를 선택, 추가 및 삭제하려고합니다. 귀하의 솔루션은 괜찮지 만 내 문제를 해결하지 못했습니다. –
컨트롤러가 아닌 클래스의 컨스트럭터에 dbcontext를 어떻게 주입시킬 수 있습니까? – zuckerthoben
@zuckerthoben 당신은 [이 질문에 대한 답변을 가지고 (https://stackoverflow.com/questions/37189984/dependency-injection-with-classes-other-than-a-controller-class) :) – 5ar