Subsonic学习

1. Subsonic学习

简述 SubSonic,一个数据层构建器,在用于多个数据库尤其方便

1.1. 第一章 SubStage的使用

  • 目前使用的substage是subsonic 2.1 beta2.2版本,它与subsonic 2.1 beta2.1最大的差别是能够实现把生成的实体文件放到指定项目中,少了beta2.1中复制粘贴功能。substage的功能是自动生成数据库文件,当数据库结构改变后,只要重新生成实体文件就可以了,而不需要向Ibatis那样修改文档!但是自动生成的数据库操作方法是有限的,大部分方法需要我们构建!(假设我们在此阶段连接的是一个数据库中的一个表blog_students,生成的providers名为test,生成的命名空间是test,生成的数据库实体名为:blogstudent,系统自动去掉了下划线_和复数s)

1.2. 第二章 使用subsonic

1.2.1. 引入文件

1.2.2. 配置web.config文件

    <configSections>
      <section name="SubSonicService" type="SubSonic.SubSonicSection, SubSonic" />
    </configSections>
    <connectionStrings configSource="connectionStrings.config"/>
    <SubSonicService defaultProvider="test">

      <providers>
         <clear/>
         <add name="test" type="SubSonic.SqlDataProvider, SubSonic" connectionStringName="test"
         generatedNamespace="test" />
      </providers>
   </SubSonicService>
    <compilation debug="true">
        <buildProviders>
          <add extension=".abp" type="SubSonic.BuildProvider, SubSonic" />
        </buildProviders>
        <assemblies>
           <add assembly="*"/>
        </assemblies>
    </compilation>
  • 其中,configSource="connectionStrings.config",connectionStrings.config是项目中的config文件,也可直接写链接字符串。 connectionStrings.config中可以写入连接多个数据库配置:

    <connectionStrings>
      <add name="test" connectionString="Data Source=(local); Database=test; Integrated Security=true;"/>
      <add ...>
      ......
   </connectionStrings>

1.2.3. 使用

  • 在项目文件中引入实体的命名空间using test;这样,便可以进行各种操作了。
    • 基本操作如下:
  • insert
    • blogstudent.Insert

(数据库各字段值);

  • delete

单个数据删除: blogstudent.Delete("id",2);

批量数据删除:

Query q = blogstudent.Query();
q.WHERE("name=xuxiuyun");
q.QueryType = QueryType.Delete;
q.Execute();

//也可:
Query q = new Query("blog_students");
q.BuildDeleteCommand();
q.WHERE("id", 9).WHERE("name","xuxiuyun");
q.Execute();
  • update

单个数据更新:

blogstudent=new blogstudent("id");
blogstudent.name="xxy";
blogstudent.save()

批量数据更新:

Query q = BlogStudent.Query();
q.WHERE("name=ssssss").AddUpdateSetting("name", "xuxiuyun");
q.QueryType = QueryType.Update;
q.Execute();

不仅能够实现各种select语句的交互式参数输入,而且能够实现数据的分页功能:

Query q = BlogStudent.Query();
q.WHERE("name=sssss");
q.QueryType = QueryType.Select;
q.PageSize = 2;
q.PageIndex = 3;//其中pageIndex从1开始.

posted on 2008-03-31 17:06 EricGu 阅读(1575) 评论(4)  编辑 收藏 网摘 所属分类: Other

评论

#1楼 2008-07-23 12:44 五味果      

楼主写的不错,subsonic做中小型项目很适合,数据访问层基本上不用再花什么精力,感觉用起来比linq to sql还要简单!

subsonic 交流qq群:subsonic群号:15019440 欢迎加入!

  回复  引用  查看    

#2楼 2008-08-29 22:25 Superddr      

补充一下
单数据查询:

blogstudent b = new blogstudent(/* id号 */);

if(!b.isNew) {//如果是new,说明数据库内没查询到结果

//xxxx

}
  回复  引用  查看    

#3楼 2008-09-27 16:38 lexus      

请问一下,LZ在哪是在北京吗?   回复  引用  查看    

#4楼 2008-11-06 16:29 koorise      

subsonic 如何执行这样的update ?
update articles set hits=hits+1 where articleID=123
  回复  引用  查看    




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1131467




相关文章:

相关链接:

导航

公告

向所有MVP致敬

<2008年7月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

统计

与我联系

搜索

 

常用链接

留言簿

随笔分类

随笔档案

文章分类

新闻分类

收藏夹

最新随笔

最新评论

阅读排行榜

评论排行榜

60天内阅读排行