2010-03-05 4 views
0

주문 ID 컬렉션을 내 where 문에 사용하려고합니다. 어떻게 작동하지 않을 수 있습니까?C# LINQ Joining And where 문이 작동하지 않습니다.

List<int> orders = new List<int>(){1,2,3,4,5}; 

DataTable dtTable1 = getOrders(); 
DataTable dtTable2 = getOrderDetails(); 
var results = from a in dtTable1.AsEnumerable() 
       join b in dtTable2.AsEnumerable() on a.Field<int>("ID") equals b.Field<int>("ID") 
       where orders.Contains(b.Field<int>("OrderID")) 
       select a; 
+1

"작동하지 않는다"고 말하지 마십시오. 문제가 무엇입니까? 컴파일되지 않습니까? 런타임 오류가 발생합니까? 기대 한 결과가 나오지 않습니다 (이 경우 차이점은 무엇입니까?). – Aaronaught

답변

2

추측 :

on a.Field<int>("ID") equals b.Field<int>("OrderID") 
+0

Nope주의 테이블 b의 필드와 비교할 Int 배열을 사용하고 있습니다. orders.Contains (b.Field ("주문 ID")) – BlackTea

0

구문은 나에게 좋아 보인다. 그리고 그들은 값 유형이기 때문에 비교가 잘 작동 할 것으로 기대합니다. 특정 데이터에 대해 올바른 열을 선택 했습니까? 어쩌면 우리는 당신의 테이블에있는 가치와 당신이보기를 기대하고있는 것을 말할 수 있습니다.

관련 문제