特定の場所でフィルタリングするLINQクエリを設計しようとしています。私のUIドロップダウンリストでは、そのドロップダウンには「すべてのサイト」という最初のエントリがあります。したがって、クエリで「すべてのサイト」が値として表示される場合、フィルターは実行されません。これはあまり意味がないかもしれませんが、これは私がSQLでそれを行っていた方法です。
select * from table
where ((location = @loc and @loc is not null) or (@loc is null))
これが私がLINQでそれをやろうとしている方法です。
var dataSetB = db.Data
.Where(j => loc != 'All Sites' && j.Location1.Description.Equals(loc));
問題は、ユーザーが「すべてのサイト」を選択した場合、場所でフィルタリングされていないすべての結果を期待しているときに結果が返されないことです。
1つのLINQステートメントでこれを実現する方法を知っている人はいますか?
ドロップダウンの例。
<All Sites>
<Sydney>
<New York>
<London>