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也肯定存在,嗯,先研究到这,下次继续……

posted on 2009-02-13 20:23  Pavel Yu  阅读(969)  评论(0编辑  收藏  举报