2015-07-10 83 views
1

我想做一个LINQ语句where where子句是一个字符串变量。例如:如何在linq where子句中使用字符串变量?

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

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

例如,在对代码&名称与此propertie &家庭用户检索算法插入值,并在性别,姓名,研究,大学本科学历,这个检索算法用户插入值。

哪个更好的解决方案呢?

+0

linq被设计为强类型。这不起作用。 –

+1

C#是不是sql,不要使用字符串的一切 –

+0

Plz看到我的编辑。 –

回答

1

Linq在默认情况下不具备此功能。你必须使用第三方库来做你想做的事情。

看看Scott GU在这个主题上的博客。

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

+0

即将发布相同的,使用它之前,但我更喜欢动态构建查询,只是使用.Where(foo)而不是 – finman

+0

如果你想在LINQ中动态构建Where子句,只需将它们追加到你的行程。请记住,查询在枚举之前不会被评估。 – Spivonious