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 @ 2008-11-05 09:44  行进中开火  阅读(955)  评论(1编辑  收藏  举报