您的位置:首页 > 数据库

发布一个类似Subsonic语法的动态生成SQL语句,并可以返回相应实体类的一个组件

2009-03-31 00:42 477 查看
趁上周周末空闲的时候,参考Subsonic的一些代码并模仿它的语法写了一个动态生成SQL语句的组件,主要是为了能提高一下开发效率。

实现原理这里就不细说了,有兴趣的朋友可以看一下源码,应该不难明白。

这里主要简单介绍以下个这个组件的用法:

1. 首先从最简单的开始,从一个表中获取其中几个列的数据

[Test]
public void Open_And_Close_Paren_Statement_Test()
{
SqlQuery query = new SqlQuery(new Product());

string expect = "SELECT ProductID, ProductName, Discontinued FROM Products Where 1=1 And ProductName LIKE @ProductName0 And (ProductID = @ProductID1 Or ProductID = @ProductID2 Or UnitPrice = @UnitPrice3 ) ";
string actual = query.And("ProductName").Like("test")
.AndExpression("ProductID").IsEqualTo(10)
.Or("ProductID").IsEqualTo(20)
.Or("UnitPrice").IsEqualTo(20)
.CloseExpression()
.SelectStatement;

Assert.AreEqual(expect, actual);
}

简单说明以下如果要使用带括号的表达式,必须使用AndExpression或者OrExpression。
使用AndExpression之后,其实就是在And之后先加入一个(,然后直到CloseExpression方法出现后才会加上)。

这个组件还支持In、Between、IsNull等一些操作,还有ToDataSet,First等一些获取数据的方法。
有兴趣的朋友可以下源码来看看,代码很简单的。

以下是下载地址:
http://files.cnblogs.com/NickYao/SqlQuery.rar
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: