2010-05-13 2 views
0

나는 nerddinner와 (과) 비슷한 웹 사이트에서 일하고 있습니다. nerddinner에서 linq to sql과 함께 수행되는 엔티티에 Linq를 사용하여 유사한 결합을 수행 할 수 있습니까? 아래 코드를 게시하고 있습니다.asp.net mvc nerddinner 질문 linq 질문에 가입

public IQueryable<Dinner> FindByLocation(float latitude, float longitude) { 
     var dinners = from dinner in FindUpcomingDinners() 
         join i in db.NearestDinners(latitude, longitude) 
         on dinner.DinnerID equals i.DinnerID 
         select dinner; 

     return dinners; 
    } 

이 코드를 엔티티 구현으로 linq로 바꾸고 싶습니다.

감사

Parminder

+0

입니까? db.NearestDinners의 대체품을 찾고 있습니까? EF로 무엇을 드러내고 있는지, 그리고 어떤 SP가 있는지 설명하십시오. – Nix

+0

기존의 nerdinner 응용 프로그램에 사용 된 모든 함수와 procs를 사용하고 싶습니다. – Parminder

답변

0

당신은 단지 그들이 같은 교차하는 찾을 수 없습니다 : 내가 FindUpcomingDinners 반환하지만 가장 쉬운 IEnumerables를 돌려 두 가지 기능을 가지고 어떻게 될지 확실하지 않다

FindUpcomingDinners().Intersect(db.NearestDinners(latitude, longitude)).ToList(); 

FindUpcomingDinnersNearestDinners에 대한 다음 두 목록의 교차를 가져옵니다.

예 : 귀하의 질문에

List<Dinner> upcomingDinners = FindUpcomingDinners(); 
List<Dinner> nearestDinners = NearestDinners(latitude, longitude); 

List<Dinner> result = upcomingDinners.Intersect(nearestDinners).ToList(); 
+0

감사합니다 Kelsey 하지만 folowing 오류 "형식 'System.Linq.EnumerableQuery'1'상수 값을 만들 수 없습니다.이 컨텍스트에서 원시 형식 ('Int32, String 및 Guid'등) 만 지원됩니다. . " 감사합니다. – Parminder

+0

@Parminder 이것을 파악할 수 있었습니까? 이 답이 도움이된다면 그것을 수락 된 대답으로 표시하는 것을 잊지 마십시오. – Kelsey

+0

감사하지만 EF4에서만 가능합니다. – Parminder