如果一些变量有一些值,我需要提取一些记录。
例如,如果使用status>0,我需要像这样过滤结果:
where object.id=status否则,如果为status=0,我需要删除这个where子句并返回所有元素。我将去掉以下内容:
if(status>0)
do a linq query with the where clauses
else
do a link query with that where clauses代码太多,因为要检查的变量可能超过4-5个。
有没有可能在LINQ上“注入”一种字符串?(这样我就可以创建我的字符串并将其传递给LINQ)。
我是说像这样的东西:
string myQuery="";
if(status>0)
myQuery="where object.id=status";
else
myQuery="";有可能吗?(经典的mysql行为)。
发布于 2011-07-27 23:41:55
由于LINQ是懒惰的,你可以这样做
var query = ...
if (status > 0)
{
query = query.Where(o => o.id == status);
}发布于 2011-07-27 23:43:40
您可以像这样构建一个查询:
IEnumerable<MyEntity> results = MyEntityContext.MyEntities;
if (status > 0)
results = results.Where(e => e.id == status);这有帮助吗?
发布于 2011-07-27 23:43:58
https://stackoverflow.com/questions/6847148
复制相似问题