36

データベースのクエリで「通常の」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でこのクエリを実行するにはどうすればよいですか?

4

1 に答える 1

79
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();
}

動作するはずです

于 2012-11-12T11:29:07.460 に答える