迁移到dbcontext LINQ where子句字符串参数

San*_*ago 2 c# linq where-clause dbcontext

我正在将我的项目从ObjectContext迁移到DbContext,我对这句话有疑问:

var query = db.Inventory.Where("it.IdState in {" + states + "}");
Run Code Online (Sandbox Code Playgroud)

这适用于ObjectContext,但现在我在编译时遇到错误:

Error   CS1503  Argument 2: cannot convert from 'string' to 'System.Linq.Expressions.Expression<System.Func<Test.DAL.Inventory, bool>>' 
Run Code Online (Sandbox Code Playgroud)

现在似乎不可能做到这一点,我试图公开ObjectContext来做到这一点,但我找不到方法

任何的想法?谢谢!

Dav*_*d L 6

您可以(并且应该)将这些参数强类型化为表达式.

var query = db.Inventory.Where(x => states.Contains(x.IdState));
Run Code Online (Sandbox Code Playgroud)