上节讲完添加操作,这节将讲述更新操作,Update<T>的使用。
先来例子:
//获取Products表第一行
Products p = DbSession.Default.From<Products>().ToFirst();
//开启修改 (修改操作之前 必须执行此方法)
p.Attach();
p.ProductName = "apple";
//获取修改记录
//List<ModifyField> list= p.GetModifyFields();
//清除修改记录 (清除后更新操作无效)
//p.ClearModifyFields();
//更新
//返回0表示更新失败 组件有事务会自动回滚
//返回1表示更新成功
//更新成功返回值就是受影响的条数
int returnvalue = DbSession.Default.Update<Products>(p);
这样就完成了更新操作,将ProductName修改为 ”apple”.
与此等效语句也可写为:
DbSession.Default.Update<Products>(Products._.ProductName, "apple", Products._.ProductID == 1);
一般只修改单个值的时候推荐这种做法。
还有一种值得推荐的做法是:
Dictionary<Field, object> dic = new Dictionary<Field, object>();
dic.Add(Products._.ProductName, "apple");
dic.Add(Products._.ReorderLevel, 20);
int returnvalue = DbSession.Default.Update<Products>(dic, Products._.ProductID == 1);
把需要修改的字段和值放到字典中,然后根据条件去更新。
修改操作是不是也很简单了啊。
下一节将讲述Delete<T>方法的使用。