이 구조는 다음과 같습니다 두통이다내 응용 프로그램에서
public ActionResult GetList()
{
using(DbConnection db = new DbConnection)
{
var query = db.Routes.ToList();
}
return PartialView(query);
}
을 입력 한 다음 데이터를 표시합니다.
@foreach (var r in Model)
{
<div>@r.AddressA.Name - @r.AddressB.Name</div>
}
그러나 문제는 View/PartialView가 using
대괄호 뒤에 표시되어 AddressA의 이름에 액세스하려고 시도하기 때문에 테이블이 가득 차게로드되지 않아서 오류가 발생합니다. 예, 할 수있다 :
을하지만, 나는 코드가 포함 된 모든 정말 추한 점점 시작이 작은 조금 더 복잡한 쿼리를 할 때. 이 간단한 코드 줄 또는 .Include("A").Include("B").Include("X.Y.Z")
보다 덜 못생긴 코드로이 문제를 극복 할 수있는 방법이 있습니까?
람다 버전의 포함을 사용할 수 있습니다. 또는 게으른 로딩을 완전히 끌 수 있습니다. 아니면 가장 좋은 해결책은 뷰 모델을 사용하여 using 블록 내부의 필수 데이터로 채우는 것입니다. – nemesv
만약 당신이 viewmodels을 제안하는 당신의 대답을 움직일 수 있다면, 나는 받아 들일 수있을 것입니다 :) 나는이 방법으로 가서 꽤 행복합니다 :) –