1

MVC에서 Entity Framework View를 사용할 때 코드에서 매우 특이한 문제가 발생합니다. 테이블을 사용할 때 문제가 없기 때문에 문제가 View 사용으로 인한 것으로 의심됩니다.데이터베이스 컨텍스트 MVC 4에서 예상대로 작동하지 않는 개체보기

내보기가 LoadAuditStats_Report 및 인덱스에 대한 컨트롤러 코드라고하는 것입니다 :

private readonly RepositoryDBContext _repository = new RepositoryDBContext(); 
    public ActionResult Index() 
    { 
     var stats = _repository.LoadAuditStats_Report; 

     return View(stats); 
    } 

뷰에있는 데이터의 예는 다음과 같습니다

enter image description here

나는 결과 살펴보면 컨트롤러에서 예를 출력하면 3 개의 레코드를 얻을 수 있지만 3 개의 레코드 모두에 대한 데이터는 1 번째 레코드의 반복이됩니다. 그래서이 경우 모든 3 개의 레코드는 PackageAuditId 700의 동일한 필드 값을가집니다.

테이블을 사용할 때이 문제를 본 적이 없기 때문에 이것은 정말 이상합니다. EntityFramework4 인터페이스에 문제가 있는지 궁금합니다. 보기와 관련이있을 때 MVC3을 사용합니까?

EntityFramework 뷰를 사용하지 않거나 작업 할 때 고려해야 할 추가 사항이 있습니까?

답변

1

또한보기에는 EF에 기본 키가 있습니다. 키가 실제로 고유하지 않은 필드로 구성된 경우 결과 세트에 중복 행을 가져올 수 있습니다. 따라서 뷰를 조사하고 어떤 열이 행을 고유하게 식별하는지 결정하고 EF가 해당 열을 기본 키로 사용하도록 지시해야합니다.

+0

감사합니다. Gert! 그것은 매우 고통스럽게 단순해서 우스 꽝 스러웠습니다. 뷰가 기반으로하는 테이블에는 고유 기본 키가 있으므로 실제로 PackageName을 사용할 때 EF가 기본 테이블의 기본 키를 사용한다고 가정합니다. 귀하의 응답을 읽은 후 일어난 일을 깨닫고 EF 내에서 이슈를 수정 한 결과는 예상대로 작동합니다. 대단히 감사합니다! – Mark

관련 문제