现在的位置: 首页 > 综合 > 正文

subsonic 2.1 beta2.2版本

2012年12月08日 ⁄ 综合 ⁄ 共 2687字 ⁄ 字号 评论关闭
文章目录

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. 引入文件

  • 建立项目后,在sunsonic安装文件中引入Microsoft.Practices.EnterpriseLibrary.Common.dll, Microsoft.Practices.EnterpriseLibrary.Data.dll,Microsoft.Practices.ObjectBuilder.dll,SubSonic.dll四个dll文件即可,注意引入到相应项目文件中。

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开始.
subsonic 中使用事务
添加引用 using System.Transactions;

using (TransactionScope scope = new TransactionScope())
        {
            try
            {
                OrderSellerList osl1 = new OrderSellerList();
                osl1.OrderId = 9;
                osl1.SellerId = 2;
                osl1.UserId = 1;

                osl1.Save();
                OrderSellerList osl2 = new OrderSellerList();
                osl2.OrderId = 200;
                osl2.SellerId = 2;
                osl2.UserId = 1;

                osl2.Save();
                scope.Complete();
            }
            catch{}

抱歉!评论已关闭.