SubSonic是一种开源工具,由Rob Conery创造,作为一种尝试把乐趣带入计划并且完成这项工作。灵感来自Ruby on Rails,SubSonic 采取了最低限度的办法,编码,并且强调结构上的惯例。虽然它的灵感来自Ruby on Rails,但是这并不是它的一种端口。 (查看单轨这是您要找的内容。)相反,SubSonic继承了Ruby on Rails最好的思想,并且使它们融入已经现有的ASP.NET框架。目前,1.05版本 SubSonic 有两个核心特点:
ActiveRecord
这种设计模式的最简单的形式是每个数据库表一类,每个数据库行一个对象。SubSonic包括建立时间码发生器实施这一模式, 作为一个对象关系映射无需编写SQL。它还包括一个动态查询工具和简单的存储过程支持在需要时扩展该模型。
Scaffolding
管理的网页是件 scaffolding 帮助删除的苦差事。只要在表格中指点棚架控制,你得到标准的网格视图和细节视图,用来在潜在的表格中找到并更新数据。虽然并不意味着永远向用户显示,但它提出了好的、快速简便的开发工具。
SubSonic是一个ORM框架,或者说是一个代码生成器,它的工作流程和一般的ORM工具不同,所有的工作全是自动完成,生成完整的数据访问层类库,然后在工程中引用即可使用,整个过程很简单。
过程记录如下:
1、建立一个c#类库工程
2、删除默认生成的class1.cs文件
3、工程添加三个引用,SubSonic.dll(前提是先安装了subsonic才会有这个)、
System.Web和System.Configuration命名空间
4、在工程下建立一个文件夹,Generated
5、在工程中添加一个新文本文件,命名为:app.config,内容如下:
<?xml version="1.0"?>
<configuration>
<!-- 第一部分是照着写就可以了,没有什么好说的 -->
<configSections>
<section name="SubSonicService" type="SubSonic.SubSonicSection, SubSonic" requirePermission="false"/>
</configSections>
<!-- 第二部分是定义一个或者多个连接数据库的字符串,其中要注意的是这部分的name的值是第三部分connectionStringName属性的值-->
<connectionStrings>
<!-- 连接数据库的字符串 -->
<add name="Nowthwin"
connectionString="Data Source=.;Initial Catalog=BuySaleStorage;Persist Security Info=True;User ID=sa;"/>
</connectionStrings>
<!-- 第三部分是将连接字符串和数据库驱动匹配起来成为一个连接。name是连接的名字,generatedNamespace的值是生成对象的命名空间-->
<SubSonicService defaultProvider="Nowthwin">
<providers>
<clear/>
<add name="Nowthwin"
type="SubSonic.SqlDataProvider, SubSonic"
connectionStringName="Nowthwin"
generatedNamespace="Nowthwin"/>
</providers>
</SubSonicService>
</configuration>