【问题标题】:How to use a string variable in the linq where clause? [duplicate]如何在 linq where 子句中使用字符串变量? [复制]
【发布时间】:2015-07-10 21:41:44
【问题描述】:

我正在尝试创建一个 LINQ 语句,其中 where 子句是一个字符串变量。例如:

string whereClause = "(Code = '12') AND (Name = 'a')" ;
var referreds = from r in _db.Referreds where whereClause;

编辑:我有一个具有 30 个属性的模型,我想为这个模型创建搜索。我想选择用户为每个属性插入值的项目。

例如,用户使用此属性插入 Code&Name&Family 搜索的值,用户使用此属性插入 Gender、Name、Study、Degree 搜索的值。

哪个是更好的解决方案?

【问题讨论】:

  • linq 被设计为强类型。这不起作用。
  • C# 不是 sql,不要对所有东西都使用字符串

标签: c# linq


【解决方案1】:

默认情况下,Linq 没有此功能。你必须使用第三方库来做你想做的事。

查看 Scott GU 关于该主题的博客。

http://weblogs.asp.net/scottgu/dynamic-linq-part-1-using-the-linq-dynamic-query-library

【讨论】:

  • 刚要发布相同的内容,之前使用过,但我更喜欢动态构建查询并只使用 .Where(foo) 代替
  • 如果您想在 LINQ 中动态构建 Where 子句,只需随时附加它们即可。请记住,在枚举之前不会评估查询。
猜你喜欢
  • 2012-03-28
  • 1970-01-01
  • 2021-12-29
  • 1970-01-01
  • 1970-01-01
  • 2016-03-22
  • 2021-08-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多