前言
曾经尝试过很多DotNet下的ORM工具(只是DotNet2.0下的),有IBatis.Net, NHibernate, MyGeneration doodads, Microsoft EntLib, SubSonic等,觉得最简单的要数doodads,最好用的当属 SubSonic。
因此在AppBox项目中,我毫不犹疑的选择SubSonic作为ORM工具。为了兼容dotnet2.0的程序,我们不 会使用最新的SubSonic3.0版本,而是使用SubSonic2.2版本。 因为2.2版本已经有两年左右的稳定时间, 所以应该不会出现大的BUG并且很容易在网上找到问题的解决办法。
约定优先于配置
这是一条由 Ruby On Rails 发扬广大的编程规则,SubSonic也非常重视这条规则,并在创建数据库表 时有一些有用的约定:
1. 每个表都应该包含如下四个列(不是必需的),这样在使用SubSonic的创建和更新函数时可以方便 的修改这些字段:
CreatedOn (datetime)
CreatedBy (nvarchar(50))
ModifiedOn (datetime)
ModifiedBy (nvarchar(50))
2. 如果你想使用逻辑删除,可以增加列:Deleted (bit)
这样当你调用数据库表映射类的静态方法 Delete 时,SubSonic会首先判断此表是否存在Deleted字段 ,如果存在则设为true。否则,则调用 Destory 函数,即是永久删除。
3. 对表名和列名的约定。
表名为单数形式
列名不要包含保留字(比如system,string等)
列名不要和表名相同
那么如何在Asp.net2.0 WebApplication项目中使用SubSonic,我想大概有如下几个步骤:
创建数据库和表
配置Web.config
通过sonic.exe连接数据库,生成所有的映射类
使用映射类对数据库进行CRUD
创建数据库和表