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 后面第一个表的字段值,希望知道解决办法的朋友说下
后面更新……