2013-05-28 3 views
0

올바른 ID 또는 -1 ("ALL")을 함수에 대한 드롭 다운에서 전달하려고합니다. 단일 linq 쿼리를 사용하는 테이블의 ddl에서 선택한 옵션을 기반으로 '전체'행 또는 하나의 행을 선택할 수 있습니까?단일 linq 쿼리를 사용하여 단일 또는 다중 레코드 선택

+0

검색어를 게시하여 업데이트 할 수 있습니다. –

답변

0

성명을 OR로 추가하여 결과를 얻을 수 있습니다. 기본적으로 (@value = -1) 또는 (id = @value). value가 -1 일 때마다 모든 값을 반환하고, 그렇지 않으면 false를 반환하고 일치하는 레코드 만 반환합니다.

0

LINQ에 OR을 사용하면 전체 테이블 스캔과 최적이 아닌 검색이 발생할 수 있습니다.

// Initialize your select 
var query = db.Select(r => r); 

// Conditionally add the "where" 
if (selectedValue != -1) 
    query = query.Where(n => n.id == selectedValue); 

// Collect your results 
foreach (var record in query) 
{ 
    // ... 
} 

모든 기록을 원하는 경우 :

하는 대신 LINQ 문 내에서 조건을 가지고, 나는 당신이 "모든"하나의 결과를 원하거나 여부에 따라 조건부 LINQ 쿼리를 작성 권 해드립니다 당신의 쿼리는 where 절을 전혀 포함하지 않을 것입니다. 그렇지 않으면 where 절은 id에 의한 필터만을 포함하게됩니다.

관련 문제