2012-04-07 4 views
1

2/3 개의 독립적 인 쿼리를 수행하고 동일한 viewmodel에로드하여 뷰에 전달해야합니다. 여기 mvc3 및 linq - ViewModel 만들기

내가 뭐하는 거지이지만, 심지어 살펴 보시기 바랍니다 컴파일하고 제가 뭘 잘못 알려 나던 .. 감사합니다

UserViewModel 클래스 2 개 매개 변수, 제목, 옵션

있다 예

model = (from b in db.Table2 
      where string.Equals(b.username, "bob") 
      select user 
      { 
       user.Title= b.Title, 
       user.option= 2 
      }); 

var list = model.ToList(); 
return View("List",list); 

UserViewModel user= new UserViewModel(); 

    var model = (from a in db.Table1 
    where string.Equals(a.username, "bob") 
    select user 
    { user.Title = a.Title, 
     user.option = 1 
    }); 

두 번째 쿼리 이것은 간단한 쿼리 내가 지금 1 개 쿼리로 넣을 수 있습니다 알고 있지만, 미래에 완전히 독립 될 것이며 내가 어떻게 알 필요가 두/3 개의 쿼리를 하나의 뷰 모델에 넣습니다. 덕분에

답변

0
var user = db.Table1 
    .Where(m => m.username == "bob") 
    .Select(x => new UserViewModel 
     { 
      Title = x.Title, 
      Option = 1 
     }) 
     .Union(
      db.Table2 
     .Where(m => m.username == "bob") 
     .Select(x => new UserViewModel 
     { 
      Title = x.Title, 
      option = 2 
     }) 
    ).ToList(); 
+0

감사합니다. 2 개의 개별 모델을보기에 전달하는 방법을 알려주시겠습니까 (모델이 다른 경우)? 그리고 그것을하는 것이 어떤 죄책감이 있는지 안다면. – Ben

+1

한 모델을 "보기 모델"로 전달하고 다른 모델은 ViewBag에 전달할 수 있습니다. 그러나 뷰에 필요한 모든 클래스를 사용하여 새 클래스 (ViewModel)를 만들고 해당 클래스를 뷰에 전달하는 것이 좋습니다. –