web-dev-qa-db-ja.com

Entity Framework-属性IN句の使用法

データベースのクエリで「通常の」WHERE句とIN句を使用して、さまざまなフィールドでエンティティをフィルタリングする必要がありますが、EFでそれを行う方法がわかりません。

これがアプローチです:

データベーステーブル

Licenses
-------------
license INT
number INT
name VARCHAR
...

EFでの望ましいSQLクエリ

SELECT * FROM Licenses WHERE license = 1 AND number IN (1,2,3,45,99)

EFコード

using (DatabaseEntities db = new DatabaseEntities ())
{
    return db.Licenses.Where(
        i => i.license == mylicense 
           // another filter          
        ).ToList();
}

私はANYとCONTAINSで試しましたが、EFでそれを行う方法はわかりません。

EFでこのクエリを実行する方法?

26
unairoldan
int[] ids = new int[]{1,2,3,45,99};
using (DatabaseEntities db = new DatabaseEntities ())
{
    return db.Licenses.Where(
        i => i.license == mylicense 
           && ids.Contains(i.number)
        ).ToList();
}

動作するはずです

57
Albin Sunnanbo