2017-11-29 5 views
0

ASP.Net Core 2 MVC 응용 프로그램에서 작업 중입니다.asp.net mvc core 2 스 캐 폴딩 컨트롤러에서 오류 발생

나는이 명령을 내 백 오피스에 대한 테이블 당 하나의 컨트롤러를 생성하고 :

dotnet aspnet-codegenerator --project . controller -name MYTABLEController -m MYTABLE -dc MYDBContext 

(MYTABLE 및 MYDBContext이 예 대체). 데이터베이스 개체 (entityframework) :

namespace MYPROJECT.Controllers 
{ 
    public class MYTABLEController : Controller 
    { 
     private readonly MYDBContext _context; 

     public ContactsController(MYDBContext context) 
     { 
      _context = context; 
     } 

당신이 그것을 하나 개의 매개 변수를 허용하는 생성자를 만들어 볼 수 있습니다 여기에

는 CSHARP 컨트롤러의 모습입니다.

웹 페이지를 호출 할 때 초기화되지 않았으므로이 컨텍스트에서 오류가 발생합니다. 여기

내가 무엇을해야 그것이 작동되도록하기 :

namespace MYPROJECT.Controllers 
{ 
    public class MYTABLEController : Controller 
    { 
     private readonly MYDBContext _context = new MYDBContext(); 

     public ContactsController() 
     { 

     } 

그래서 제 질문은 다음과 같습니다

  1. 이 문제를 해결하는 가장 좋은 방법이 있나요? 나는 그것이 정말로 버그인지 또는 내가 무엇인가 놓치고 있는지 궁금해하고있다.

  2. 생성 된 각 chtml보기의 모양과 느낌은 매우 추합니다. 더 섹시한 것을 얻기위한 몇 가지 옵션이 있습니까?

감사

답변

1

생성 된 컨트롤러 코드가 잘 보인다. 정확한 오류는 언급하지 않았지만 서비스 컨테이너에 MYDBContext를 추가하지 않았기 때문에 오류가 발생한다고 가정합니다.

startup.cs 파일에서이 MYDBContext를 서비스 컨테이너에 추가해야 컨트롤러가 제대로 주입 할 수 있습니다. 예,

services.AddDbContext<MYDBContext>(options => 
     options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"])); 

아래로 오류가 발생하는 경우이를 수행 한 후 :

System.ArgumentException: AddDbContext was called with configuration, but the context type 'MyDBContext' only declares a parameterless constructor. 

다음 뜻

당신의 DbContext가 올바른 옵션 매개 변수를 사용하여 주입 할 제대로 구성되어 있지 않습니다 스캐 폴딩. AddDbContext가 구성 호출했지만, 상황에 맞는 유형은 'MyDBContext'만 매개 변수가없는 생성자를 선언 : 지금이 오류가

public partial class MYDBContext : DbContext 
{ 
    public MYDBContext(DbContextOptions<MYDBContext> options) 
     : base(options) 
    { 

    } 
+0

: System.ArgumentException에 생성자를 업데이트합니다. – Bob5421

+0

이 답변을 업데이트했습니다. DbContext 클래스를 업데이트해야 할 수도 있습니다. –

+0

이 경우 "InvalidOperationException : 'XXXXX.ControllersXXXController'를 활성화하는 동안 'XXXX.XXXXContext'유형의 서비스를 확인할 수 없습니다. – Bob5421