SubSonic作为一种OR Mapper,可以用极少的代码完成对DAL的操作。下面我们比较下分别用SubSonic和ADO.NET两种方法的操作。
以Northwind数据库为例子,我们要实现根据ProductID进行查找并用gridview将操作结果显示出来,如图
//ADO.NET
ADO.NET中若要进行其他操作,则只需更改SQL语句就OK了……,可以看出代码的冗余,也存在"SQL注入"安全性问题。
//看看SubSonic的处理
太爽了,嗯,有了VS的"智能感应",可以极大减少犯SQL错误的烦恼了。
再举一例,想用SubSonic多种方式来实现数据的添加,同样显示在gridview中,如图
//method 1
//method 2
//this method 'Insert' can not be overloaded ,So you must takes all of arguments
//method 3
//method 4 5 6……非常灵活
SubSonic为你的数据库里的每个表生成三个类:
1.表名奇数形式的类;例如有一个表Products,类名就是Product,这是一个强类型的类代表数据库表中的一行数据,表中的每一列对应类中的强类型的属性名,允许null的字段定义为nullable
2.集合类:例如一个表Products,你将得到ProductCollection 类,这个类提供了好多方法处理数据库的数据
3.一个控制器(如ProductController):这提供了基本功能(创建,检索,更新和删除)。 而Product和ProductCollection 能装载自己,是ProductController是专为这些任务而设计的。此外,你可以把控制器作为数据源,为您的网页使用ObjectDataSource控件。
(引用http://www.cnblogs.com/wliang22/archive/2008/07/04/1235944.html)
当然上面的例子只是SubSonic的冰山一角,SubSonic在给我们带来方便的同时,bug也肯定存在,嗯,先研究到这,下次继续……