データベースのクエリで「通常の」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でこのクエリを実行する方法?
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();
}
動作するはずです