2009-08-19 10 views

答えて

15

はい、あなたはを使用

string[] myfields = request.querystring["categories"].split(','); 

おかげすなわち

select * from products where category in ('shoes','boots') 

フィールドは、基本的にクエリ文字列から来るということだ(これ以上が、説明を簡単にするために、より安全な):あなたが使用する理論的には

from product in db.Products 
where myFields.Contains(product.Category) 
select product 
0

別名

db.Products.Where(product => myFields.Contains(product.Category)) 

含まれています

var productList = from product in context.Products 
    where myfields.contains(product.category) 
    select product 

あなたはこれをテストする必要がありますが - 私はバグであることが思い出すように見えますLinq2Sqlオプティマイザでリスト<>を処理しようとしていて、配列の値がこのように使用されています(IQueryableとしてキャストしようとした場合のみ発生する可能性があります)

1

他にも述べたように、はい.Containsメソッドを使用します。 Bing(またはその他の検索エンジン)を介してここに到着するかもしれない他のランダムな人々に利益をもたらすために:Linq-To-Entitiesは現在のバージョンの.Containsメソッドをサポートしていません。ただし、簡単な拡張方法を使用すると、次のようにすることができます。
http://george.tsiokos.com/posts/2007/11/30/linq-where-x-in/