subsonic 学习笔记

进公司才开始学习这个东西,国内的资料不是很多,外语难看,现在也用过一段时间记录学习过程的东西,不对的地方望大家指正。

  subsonic的配置:

         配置比较简单:主要修改3个地方

         1。在<configSections></configSections>增加

         <section name="SubSonicService" type="SubSonic.SubSonicSection, SubSonic" requirePermission="false"/>配置节

         2.<connectionStrings></conectionStrings>增加链接字符串,多数据库时直接增加多个链接字符串(我测试的要用2.2以上的版本才可以)

         3.增加<SubSonicService defaultProvider="defaultProvider">
        <providers>
            <clear/>
            <add name="defaultProvider" type="SubSonic.SqlDataProvider, SubSonic" connectionStringName="defaultConnection"/>
            </providers>
        </SubSonicService>配置节,type应该视使用的数据库而定

     表:Book:varchar(32) bookid,nvarchar(32) booktitle,text bookdesc,nvarchar(32) bookauthor

  subsonic简单查询:

      1 函数:select()

  BookCollection bc=new Select().From(Book.Schema).ExecuteAsCollection<BookCollection>();

  绑定Gridview

    gvwBooks.DataSource=bc;

    gvwBooks.DataKeyNames=new string[]{"bookid"};

    gvwBooks.DataDind();

  2 函数:where()

  BookCollection bc=new Select().From(Book.Schema).Where("booktitle").IsNotNull().ExecuteAsCollection<BookCollection>();

  查询出 booktitle不为空的数据

  3函数:orderbydesc()  orderbyasc()

  BookCollection bc=new Select().From(Book.Schema).Where("booktitle").IsNotNull().OrderByDesc("bookid").ExecuteAsCollection<BookCollection>();

      查询booktitle 不为空 并以 bookid 排序

      3 函数:paged()

        int pagesize;

        int currentpageindex;

        BookCollection bc=new Select().From(Book.Schema).Paged(currentpageindex,pagesize).ExecuteAsColleciton<BookCollection>();

        我使用的paged(),在单表查询时,没有问题,可是当执行多表查询时,有重复的项,还不知道怎么解决,希望知道的说下。

http://subsonicproject.com/docs/Inline_Query_Tool

      2011.4.2 今天朋友到一个问题 2.2版本

       当使用表连接时,如果两个表都要相同的字段,当你查询这个字段的时候,结果总是 From 后面第一个表的字段值,希望知道解决办法的朋友说下

   后面更新……

posted @ 2011-03-18 18:51  blueker_li  阅读(500)  评论(0编辑  收藏  举报