데이터를 쿼리 할 수 있도록 클래스를 만들었습니다. 내가 컨트롤러 클래스 데이터 컨텍스트에서 작동한다면,하지만 내가 만든 클래스에서 그것을 수행하면 null 오류가 발생합니다. 그것은 다음과 같은 오류가 발생합니다 : Microsoft.Extensions.DependencyInjection.Abstractions.dll을하지만, 내 시작 설정 사용자 코드 에서 처리되지 않은 :C# asp.net core. 다른 클래스의 datacontext에 액세스하는 방법
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddApplicationInsightsTelemetry(Configuration);
services.AddDbContext<Abstractor_DataContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("ApplicationDatabase")));
//services.AddTransient(typeof(Abstractor_DataContext));
//Register your filter as a service (Note this filter need not be an attribute as such)
services.AddTransient<AppExceptionFilterAttribute>();
services.AddMvc();
}
내 수준의 기능을
using Microsoft.Extensions.DependencyInjection;
public static IList<ApplicationInfo> TestDb()
{
//var options = _serviceProvider.GetService<Abstractor_DataContext>();
using (var context = _serviceProvider.GetService<Abstractor_DataContext>())
{
return context.ApplicationInfo.ToList();
}
}
VAR DataContext를 액세스 할 수 컨텍스트가 null입니다. 내가 뭘 놓치고 있니? DI 학습을 늦추고 있습니다.
DbContext를 입력으로 사용하지 않으므로 DbContext 객체를 제공 할 수 없습니다. – skjoshi
언제이 'TestDb' 메소드를 사용하고 있습니까? 이 메서드를 호출 할 때까지 데이터 컨텍스트가 등록되어 있으면 작동해야합니다. 그러나 예제에서 데이터베이스'Seed' 중에 이것을 호출하면 작동하지 않습니다. –
에브라임, 나는 그것을 내 통제라고 부른다. [HttpGet] [도로 ("GetTestDb")] 공개 IList의 GetTestDb (INT 아이디) { 창 DataAccessServices.TestDb(); // _ context.ApplicationInfo.ToList(); } –
inavnacorp