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开始.

你可能感兴趣的:(BSON)