我想用亚音速2.2
实现以下SQL语句SELECT Product.* FROM Product WHERE Product.OurPrice <> Product.RetailPrice
我开始使用的亚音速选择查询:
SubSonic.SqlQuery select = new SubSonic.Select()
.From<Product>()
.Where(Product.Columns.OurPrice)
.IsNotEqualTo(... object /*Should be Product.Columns.RetailPrice, but that's giving and exception*/...);
我的问题是如何告诉SubSonic 2.2在同一个表中针对另一列生成where条件。
答案 0 :(得分:0)
看起来您正在尝试比较查询中的两列。除非您使用内联查询,否则这在SubSonic 2.2中是不可能的:
http://subsonicproject.com/docs/Inline_Query_Tool
您还可以使用基于视图或表格的功能。
答案 1 :(得分:0)
上述问题的解决方案:
ProductCollection products = new SubSonic.InlineQuery().ExecuteAsCollection<ProductCollection>
(@"SELECT Product.ProductId, ... Product.ModifiedBy, Product.ModifiedOn, Product.IsDeleted FROM Product WHERE (Product.OurPrice <> Product.RetailPrice)");
Repeater1.DataSource = products;
Repeater1.DataBind();
答案 2 :(得分:0)
您可以使用旧的Query对象(仍包含在2.2中),如下所示:
Query q = new Query(Product.Schema.TableName).WHERE("OurPrice <> RetailPrice");
ProductCollection products = new ProductCollection();
products.LoadAndCloseReader(q.ExecuteReader());