2010-01-22 4 views
0

에서 값을 카운트하기, I 등 자동차의 번호, 집 번호, id로 한 사람을 반환하는 방법, 내가 함께이 테이블을로드 할 필요그냥이 사람들 테이블이 EF

줄까? EF가 생성 한 SQL이 괴물이라는 것을 알았습니다.

예 :

public Person Get() 
{ 
    return context.People.Include("Cars").Include("Houses").Where(x=> x.Id = 1).First(); 
} 

내보기 사용이 :

Name: <%= people.Name%> 
Cars: <%= people.Cars.Count%> 
Houses: <%= people.Houses.Count%> 

답변

2

당신은 카운트를 다시 가져올 것이

var result = (
    from p in ctx.People 
    where p.Id == 1 
    select new { 
     Person = p, 
     Cars = p.Cars.Count(), 
     Houses = p.Houses.Count() 
    }).FirstOrDefault(); 

할 수 있습니다.

+0

문제는 "var"를 반환 할 수 없다는 것입니다. PeopleXXXModelView를 생성해야합니다 –

+0

그래서'select new {'대신에 새로운 PeopleXXXModelView {'를 선택하십시오. –