首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以将字符串用于LINQ查询表达式?

是否可以将字符串用于LINQ查询表达式?
EN

Stack Overflow用户
提问于 2011-07-27 23:37:47
回答 9查看 2.4K关注 0票数 7

如果一些变量有一些值,我需要提取一些记录。

例如,如果使用status>0,我需要像这样过滤结果:

代码语言:javascript
复制
where object.id=status

否则,如果为status=0,我需要删除这个where子句并返回所有元素。我将去掉以下内容:

代码语言:javascript
复制
if(status>0)
   do a linq query with the where clauses
else
   do a link query with that where clauses

代码太多,因为要检查的变量可能超过4-5个。

有没有可能在LINQ上“注入”一种字符串?(这样我就可以创建我的字符串并将其传递给LINQ)。

我是说像这样的东西:

代码语言:javascript
复制
string myQuery="";
if(status>0)
   myQuery="where object.id=status";
else
   myQuery="";

有可能吗?(经典的mysql行为)。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2011-07-27 23:41:55

由于LINQ是懒惰的,你可以这样做

代码语言:javascript
复制
var query = ...

if (status > 0)
{
    query = query.Where(o => o.id == status);
}
票数 8
EN

Stack Overflow用户

发布于 2011-07-27 23:43:40

您可以像这样构建一个查询:

代码语言:javascript
复制
IEnumerable<MyEntity> results = MyEntityContext.MyEntities;
if (status > 0)
    results = results.Where(e => e.id == status);

这有帮助吗?

票数 3
EN

Stack Overflow用户

发布于 2011-07-27 23:43:58

使用动态LINQ是可能的,请参阅ScottGu的博客文章:Dynamic LINQ (Part 1: Using the LINQ Dynamic Query Library)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6847148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档