如何在var类型的sql查询中添加条件字符串

时间:2010-08-27 12:10:31

标签: c# asp.net sql .net-3.5

我在VAR类型中使用sql查询处理源代码,如

var query = select ... from ... where ... ;

是否可以添加动态“where子句”,如

string condition = "where x.x > x.y"; 

e.g. var query = select ... from ... + condition;

对不起我的英语不好

2 个答案:

答案 0 :(得分:0)

您没有明确说明查询的外观。它是LINQ操作的结果还是只是一个String?

关键字var仅可用于设计时。编译器将使用正确的数据类型替换它。

如果SQL查询是一个字符串,比如

var query = "Select ... from ... where ..";

然后

string condition = "where x.x > x.y";
query += condition;

有效,因为两个变量都是字符串。您不能按照代码建议的方式将非字符串类型与字符串组合在一起。

我现在假设您使用的是LINQ语法。可以在每个代码的linq查询中添加这样的条件,我认为关键字linq查询构建器,表达式树和谓词应该可以帮助您入门。

我强烈建议您停止使用var关键字,而不要完全知道它的作用以及在何处使用它。

答案 1 :(得分:0)

Dynamic Linq专门用于解决LINQ的后期绑定方案:

http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx

允许构造如:

NorthwindDataContext northwind = new NorthwindDataContext();

var query = northwind.Products
                        .Where("CategoryID = 3 AND UnitPrice > 3")
                        .OrderBy("SupplierID");