2012-07-27 3 views
1

내 모든 db.MyDB.include (객체)를 표시하지 않습니다내보기 내 컨트롤러 방법이

public ViewResult Index() 
{ 
    var orderdetail = db.OrderDetails.Include(o => o.Product).Include(o => o.Pack).Include(o => o.Order);   
    return View(orderdetail); 
} 

내보기 : 내보기에서

<td> 
    @Html.DisplayFor(modelItem => item.Order.Username) 
</td> 
<td> 
    @Html.DisplayFor(modelItem => item.Product.Name) 
</td> 
<td> 
    @Html.DisplayFor(modelItem => item.Pack.Name) 
</td> 

, 그것은 것 그냥 첫 번째 포함을 보여줍니다. 그래서 여기, Include (o => o.Product)가 Include (o => o.Pack) 앞에 있기 때문에 내 제품 만 있습니다. 팩을 먼저 넣으면 내 팩만 표시됩니다. 내보기 표시를 모두 원합니다. 내가 어떻게 할 수 있니?

실례합니다. 영어로 실례합니다. 도움을 주셔서 감사합니다.

+0

쿼리가 끝날 때'.ToList()'를 호출해야합니다. 평가되지 않은 쿼리를보기에 전달하고 싶지는 않습니다. – James

+0

답변 해 주셔서 감사합니다. 그러나'return View (orderdetail.ToList())'는 아무 것도 변경하지 마십시오. 동일한 문제 – Alternative

+0

질문에 대한 답변이 아니므로 일반적인 조언이었습니다. 코드가 작동해야하는 것처럼 보이지만 lambdas 대신 문자열을 사용 해본 적이 있습니까? 예 : Include ("Pack") Include ("Order")' – James

답변

1

그런 식으로 Include을 연결할 수있는 것처럼 보이지 않습니다. 검색어를 명시 적으로 빌드해야합니다.

db.OrderDetails.Include(o => o.Product); 
db.OrderDetails.Include(o => o.Pack); 
db.OrderDetails.Include(o => o.Order); 
return View(db.OrderDetails); 
+0

'db.OrderDetails.include (..)'를'orderDetail = orderDetail.Include (...)와 같이 var의 이름으로 추가한다. '그것은 효과가 없다. 감사 – Alternative

관련 문제