所以,我开始写DbScript。
DbScript很简单,没有一大堆的噱头,结构简单,用起来也简单。
它可以自动帮你生成所有的实体类,所以你不用写实体类了,会自动帮你把每一条Sql查询转化成方法,一切都是强类型的,所以不用担心因为变异时找不到错误。配置文件是可以用任何SQL工具从数据库导出的Create语句和很简单结构的Sql指令列表(比XML简单多了)。我们来看看到底能有多简单。
首先在数据库里创建好表结构(假设是SqlServer2000),然后在企业管理器中导出创建表的SQL,另存为script.sql保存在App_Code 目录里,然后用 表名:查询名{SQL查询}这样子的结构将可能用到的查询都写进去。
然后在网站项目引用Dbscript.Dll,按照规定添加Web.config,其它配置直接Copy进去,只需要修改连接字符串和数据库类型。之后把网站编译一次,然后我们就可以开始简简单单的工作了。
每个表都会被生成实体类,查询的方法也都自动生成了,如果要查询你只需要写入Fetch,VS2005会自动的提醒你有哪些查询方法是可选的。我们看一个例子,查询在成都的用户:
1
IExecute exec = ExecuteFactory.GetExecuter();
2
donkeyuser du = new donkeyuser();
3
du.livingcity = "成都";
4
int count = 0;
5
List<donkeyuser> list = Fetch.getalluser(du, 10, 1, out count, exec);
6
GridView1.DataSource = list;
7
GridView1.DataBind();
2
3
4
5
6
7
如果排除绑定GridView,大家可以看到有多简单了。
如果是插入一个用户呢?
1
IExecute exec = ExecuteFactory.GetExecuter();
2
donkeyuser du = new donkeyuser();
3
exec.Insert<donkeyuser>(du);
4
2
3
4
如果是需要事务来操作呢?
1
IExecute exec = ExecuteFactory.GetExecuter();
2
donkeyuser du = new donkeyuser();
3
try
4
2
3
4
注意,用完后记得要exec.Close()关闭连接;
很多人会问,如果有Many2One,One2Many,Many2Many的关系怎么办呢?
其实也就一句话的事情,也许我在下一个版本会提供一个简化的版本来解决关系问题以适应更懒得人,不过自己权衡了一下,配置半天来搞定本来一句话就搞定的事情实在划不来,于是这个版本我就懒筋发作没有处理了。
不想强调这个组件怎么怎么符合先进的架构,三层多层什么的,老实说我把它设计得更类似一个ToolKit,而非Framework,Framework是束缚程序员手脚的框框条款,而ToolKit是程序员的好朋友,需要的时候你可以用它,不需要的时候它会静静的呆在代码的角落,所以我希望你能下载Dbscript,让它来帮助你,也希望你能给我更多的建议,回馈,让我能更好的改进它。
项目主页:http://www.codeplex.com/Dbscript