宁波.NET俱乐部最新随笔RSS
 
摘要: 配置的缓存并不能满足我们的需求,例如有时候需要刷新缓存,或者某次查询缓存时间或者缓存依赖不一样等。 刷新缓存 例如: DbSession.Default.From<Products>().Where(Products._.ProductID == 1).Refresh().ToFirst();Refresh()方法设置了刷新缓存,即不从缓存中读取,直接从数据库读取最新数据,并重新缓... 阅读全文
2010-02-09 09:36 作者: steven hu【评论:6】【阅读:632】 
摘要: 首先我是做web开发的,所以很多会偏向web的,组件使用的缓存是System.Web.HttpRuntime.Cache。 组件在默认情况下是关闭缓存的。 所以要开启缓存查询要做一下配置。 先看一下例子配置: <configSections> <section name="HxjCacheConfig" type="Hxj.Data.CacheConfiguration,H... 阅读全文
2010-02-08 08:41 作者: steven hu【评论:4】【阅读:1107】 
摘要: 经过周末的通宵,发布了组件1.0版本。 对组件进行了扩展,最大的修改就是增加缓存查询,以获得更好的性能。 本节先讲一些小的扩展修改。 之前版本ToScalar()只是返回object。 现在增加了ToScalar<TResult>()方法,组件自动转换类型。 例如: DbSession.Default.From<Products>().Select(Products... 阅读全文
2010-02-07 21:01 作者: steven hu【评论:5】【阅读:688】 
摘要: 分页在前面好几节中的列子中已经出现,现在在详细讲解一下。 有三种方法去实现: 1、Top(int topCount) 方法 在sqlserver和msaccess中其实就是top , 在oracle通过rownum实现。 2、From(int startIndex, int endIndex) 从startIndex条到endIndex条之间的记录数。 3、Page(int pageSiz... 阅读全文
2010-02-01 09:27 作者: steven hu【评论:14】【阅读:1288】 
摘要: 对事务有进行了更新,又得去下载一下新版本,对上一版本兼容,扩充了DbTrans方法。 相比十七节(事务)中的事务写法简洁了一些。如下 using (DbTrans trans = DbSession.Default.BeginTransaction()){ trans.Update<Products>(Products._.ProductName, "apple", Products... 阅读全文
2010-01-31 13:52 作者: steven hu【评论:2】【阅读:1028】 
摘要: 批处理就是提交的脚本不是马上执行,而是到一定数量才提交。还是先上例子using (DbBatch batch = DbSession.Default.BeginBatchConnection()){ batch.Update<Products>(Products._.ProductName, "apple", Products._.ProductID == 1); batch.Upda... 阅读全文
2010-01-30 12:49 作者: steven hu【评论:4】【阅读:166】 
摘要: 首先对事务进行了升级,所以又要重新去下载一下新版本。 组件提供了简单的事务,并没有过多的封装。 先上个例子: using (DbTrans trans = DbSession.Default.BeginTransaction()){ DbSession.Default.Update<Products>(Products._.ProductName, "apple", Product... 阅读全文
2010-01-29 23:31 作者: steven hu【评论:2】【阅读:124】 
摘要: 在查询没有设置查询字段,组件默认是返回所有字段信息,即select * from table 那在查询中如何设置需要返回的字段信息呢? 在之前几节中的例子已经存在设置查询字段,是通过 select方法来设置的。 先上例子: DbSession.Default.From<Products>() .Select(Products._.ProductID, Products._.Pro... 阅读全文
2010-01-28 14:51 作者: steven hu【评论:3】【阅读:166】 
摘要: 本节将讲述查询的排序(order by) 和 分组(group by)。 先说排序 在分页中如果没有指定排序,组件会默认一个排序来实现分页。 例如 DbSession.Default.From<Products>() .Page(10, 2) .Where(Products._.CategoryID.SelectIn(1, 2, 3)) .ToList();生成的sql如下: ... 阅读全文
2010-01-27 21:43 作者: steven hu【评论:11】【阅读:190】 
摘要: 联合查询在前面的例子中已经出现过,只不过没有细说。 先来个例子吧 DbSession.Default.From<Customers>() .InnerJoin<Orders>(Customers._.CustomerID == Orders._.CustomerID) .ToDataTable();生成的sql Text: SELECT * FROM [Custome... 阅读全文
2010-01-27 11:37 作者: steven hu【评论:1】【阅读:170】 
摘要: 查询条件的值来自另外一次查询。 例如 sqlserver sql: select * from products where categoryid=(select top 1 categoryid from categories where categoryname=’produce’) 这条sql的实现代码如下: DbSession.Default.From<... 阅读全文
2010-01-27 09:01 作者: steven hu【评论:7】【阅读:158】 
摘要: 条件的生成都是通过对表中字段进行的。 比如: Products._.UnitPrice > 1Products._.CategoryID == 2这些是简单的比较。下面来介绍通过like 模糊查询该怎么做。先上代码,Products._.ProductName.Contain("apple")这句等效sql就是(sqlserver) productname like ‘%ap... 阅读全文
2010-01-26 17:32 作者: steven hu【评论:10】【阅读:178】 
摘要: 在前几节的例子中都生成where之后的条件,例如:Products._.CategoryID == 2代码中这些就是生成条件,对应sql就是 categoryid=2归根到底这句代码返回回来的是一个WhereClip. WhereClip where = WhereClip.All;这个是一个空值,也就是无条件。不会生成where条件。条件的组合两个条件同时成立:Products._.UnitP... 阅读全文
2010-01-26 12:41 作者: steven hu【评论:6】【阅读:174】 
摘要: 前面有TX留言问分页的sql是怎么样的,看完这篇你也就知道了。 组件可以输出执行的sql,方便查看sql生成的语句是否有问题。 通过注册事件来输出sql DbSession.Default.RegisterSqlLogger(database_OnLog); private string sql;void database_OnLog(string logMsg){ //保存执行的DbComm... 阅读全文
2010-01-26 08:19 作者: steven hu【评论:0】【阅读:178】 
摘要: 本节将讲述DbSession的其他简单辅助方法。 SUM方法 DbSession.Default.Sum<Products>(Products._.UnitPrice, Products._.CategoryID == 2);返回categroyid=2的unitprice合计。AVG方法 DbSession.Default.Avg<Products>(Products... 阅读全文
2010-01-25 19:58 作者: steven hu【评论:4】【阅读:167】 
摘要: 上一节讲述的sql语句的执行,本节将讲述的是存储过程的执行。 执行存储过程是通过FromProc方法来完成的。 执行无参数存储过程如下: DbSession.Default.FromProc("Ten Most Expensive Products").ToDataTable(); "Ten Most Expensive Products"就是存储过程名称。执行带参数的存储过程: DbSe... 阅读全文
2010-01-25 17:01 作者: steven hu【评论:0】【阅读:173】 
摘要: 上一节讲述的是删除操作,本节将讲述如何直接执行sql语句。 直接执行sql语句是使用FromSql方法。 DbSession.Default.FromSql("select * from products").ToDataTable();这样看起来亲切多了吧,直接sql就可以执行。当然也可添加参数的啊。 DbSession.Default.FromSql("select * from prod... 阅读全文
2010-01-25 15:58 作者: steven hu【评论:3】【阅读:172】 
摘要: 上节讲述数据库更新操作,本节将讲述删除操作。 上代码: //删除 条件 ProductID=2 int returnvalue = DbSession.Default.Delete<Products>(Products._.ProductID == 2);Delete很简单,只要加了条件就可以了。与之等效的还有如下操作: int returnvalue = DbSession.De... 阅读全文
2010-01-25 09:18 作者: steven hu【评论:3】【阅读:165】 
摘要: 上节讲完添加操作,这节将讲述更新操作,Update<T>的使用。 先来例子: //获取Products表第一行Products p = DbSession.Default.From<Products>().ToFirst();//开启修改 (修改操作之前 必须执行此方法)p.Attach();p.ProductName = "apple";//获取修改记录//List<... 阅读全文
2010-01-23 23:46 作者: steven hu【评论:5】【阅读:214】 
摘要: 上一节讲述如何使用查询。这节将讲添加数据操作即Insert<T>方法的使用. 先上例子(使用asp.net) 这个是页面html代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&... 阅读全文
2010-01-23 23:09 作者: steven hu【评论:0】【阅读:201】 

导航

广告

团队简介

团队公告

QQ群

其他交流方式

计数器

聚合

团队负责人

团队成员[共42人]