当前位置: 首页 > news >正文

如何自己制作微网站单位网站 方案

如何自己制作微网站,单位网站 方案,ps做图下载网站有哪些,建设银行网上银行官方网站NHibernate之旅(5)#xff1a;探索Insert, Update, Delete操作 2008-10-17 16:31 by 李永京, 42903 阅读, 73 评论, 收藏, 编辑 本节内容 操作数据概述1.新建对象2.删除对象3.更新对象4.保存更新对象结语操作数据概述 我们常常所说的一个工作单元#xff0c;通常是执行1个或… NHibernate之旅(5)探索Insert, Update, Delete操作 2008-10-17 16:31 by 李永京, 42903 阅读, 73 评论, 收藏,  编辑 本节内容 操作数据概述1.新建对象2.删除对象3.更新对象4.保存更新对象结语操作数据概述 我们常常所说的一个工作单元通常是执行1个或多个操作对这些操作要么提交要么放弃/回滚。想想使用LINQ  to SQL一切的东西都在内存中操作只有调用了DataContext.SubmitChanges()方法才把这些改变的数据提交到数据库中LINQ to  SQL那么提交要么回滚。 我们使用NHibernate也一样如果只查询数据不改变它的值就不需要提交(或者回滚)到数据库。 注意这节我们在上一节源代码的基础上在数据访问层中新建CRUD.cs类用于编写操作方法在数据访问的测试层新建一CRUDFixture.cs类用于测试。 1.新建对象 简单描述新建一个对象调用ISession.Save()同步ISession。 例子在数据访问层编写CreateCustomer()方法把传过来的Customer对象保存在数据库中。 public int CreateCustomer(Customer customer) {int newid (int)_session.Save(customer);_session.Flush();return newid; } 我们测试这个方法新建一个Customer对象调用CreateCustomer()方法返回新插入的CustomerId再次根据CustomerId查询数据库是否存在这个对象。 [Test] public void CreateCustomerTest() {var customer new Customer() { Firstname YJing, Lastname Lee }; int newIdentity _crud.CreateCustomer(customer); var testCustomer _crud.GetCustomerById(newIdentity); Assert.IsNotNull(testCustomer); } 2.删除对象 简单描述获取一个对象调用ISession.Delete()同步ISession。 说明使用ISession.Delete()会把对象的状态从数据库中移除。当然你的应用程序可能仍然持有一个指向它的引用。所以最好这样理解Delete()的用途是把一个持久化实例变成临时实例。  你也可以通过传递给Delete()一个NHibernate 查询字符串来一次性删除很多对象。删除对象顺序没有要求不会引发外键约束冲突。当然有可能引发在外键字段定义的NOT NULL约束冲突。 例子在数据访问层编写DeleteCustomer()方法从数据库中删除Customer对象。 public void DeleteCustomer(Customer customer) {_session.Delete(customer);_session.Flush(); } 我们测试这个方法在数据库中查询CustomerId为2的Customer对象调用DeleteCustomer()方法删除再次根据CustomerId查询数据库是否存在这个对象。 [Test] public void DeleteCustomerTest() {var coutomer _crud.GetCustomerById(2);_crud.DeleteCustomer(coutomer);var testCustomer _crud.GetCustomerById(2);Assert.IsNull(testCustomer); } 3.更新对象 简单描述获取一个对象改变它的一些属性调用ISession.Update()同步ISession。 例子在数据访问层编写UpdateCustomer()方法修改Customer对象。 public void UpdateCustomer(Customer customer) {_session.Update(customer);_session.Flush(); } 测试这个方法在数据库中查询CustomerId为1的Customer对象并修改它的Firstname属性值调用UpdateCustomer()方法更新再次查询数据库中CustomerId为1的Customer对象的Firstname值为修改之后的值。 [Test] public void UpdateCustomerTest() {var customer _crud.GetCustomerById(1);customer.Firstname liyongjing;_crud.UpdateCustomer(customer);var testCustomer _crud.GetCustomerById(1);Assert.AreEqual(liyongjing, customer.Firstname); } 4.保存更新对象 你会不会想出这个问题哪些是刚刚创建的对象哪些是修改过的对象对于刚刚创建的对象我们需要保存到数据库中对于修改过的对象我们需要更新到数据库中。 幸好ISession可以识别出这不同的对象并为我们提供了ISession.SaveOrUpdate(object)方法 ISession.SaveOrUpdate(object)方法完成如下工作 检查这个对象是否已经存在Session中。如果对象不在调用Save(object)来保存。如果对象存在检查这个对象是否改变了。如果对象改变调用Update(object)来更新。看看下面例子说明了这种情况在数据访问层编写SaveOrUpdateCustomer()方法保存更新Customer对象列表依次遍历列表中的Customer对象调用ISession.SaveOrUpdate(object)方法保存更新每个Customer对象。 public void SaveOrUpdateCustomer(IListCustomer customer) {foreach (var c in customer) { _session.SaveOrUpdate(c); } _session.Flush(); } 测试这个方法先在数据库中查询Firstname为YJing的Customer对象并修改它的Lastname属性值这些对象是数据库中存在的并改变了然后新建2个Customer对象这两个对象在数据库中不存在是新创建的。调用SaveOrUpdateCustomer()方法保存更新对象即更新前面修改的对象和保存了后面新创建的2个对象。再次查询数据库中Firstname为YJingLastname为YongJing的Customer对象是否一致了。 [Test] public void SaveOrUpdateCustomerTest() {IListCustomer customers _crud.GetCustomersByFirstname(YJing);foreach (var c in customers) { c.Lastname YongJing; } var c1 new Customer() { Firstname YJing, Lastname YongJing}; var c2 new Customer() { Firstname YJing, Lastname YongJing}; customers.Add(c1); customers.Add(c2); int initiaIListCount customers.Count; _crud.SaveOrUpdateCustomer(customers); int testListCount _crud.GetCustomersByFirstnameAndLastname(YJing, YongJing).Count; Assert.AreEqual(initiaIListCount, testListCount); } 结语 当然这一节操纵对象操作在NHibernate中涉及了对象的状态 对象对一个特定的ISession来说有三种状态分别是瞬时(transient)对象、持久化(persistent)对象、游离(detached)对象。这一节没有说到了以后在讨论Session的时候再介绍。 转载于:https://www.cnblogs.com/zhengwei-cq/p/7359665.html
http://www.zqtcl.cn/news/953589/

相关文章:

  • 灌南县规划局网站理想嘉苑规划建设那些公司做网站好
  • 大型网站开发的主流语言wordpress 连接flickr
  • 制作一个网站流程怎样做网站运营
  • 可以完成交易的网站 做微信公众号电商网站开发
  • 上海市建设安全协会官方网站机械加工怎么找客户
  • 郑州驾校网站建设互联网公司可通过数据分析人们的哪些方面
  • 珠海杰作网站建设网络公司做一个关于电影的网页设计
  • 电子商务网站建设需要哪些步骤网站开发维护合同书
  • 顺德网站设计成都网站优化方式
  • 宁波建网站哪家好用点网站后台 更新缓存
  • 如何推广网站链接做旅游网站的目的
  • 网站规划与设计课程设计中企动力网站建设 长春
  • 最新网站建设哪家公司好wordpress 顶部图片
  • 有什么网站可以做一起作业公司简介优秀文案
  • 太仓住房和城乡建设局网站seo网页推广
  • 网络公司 网站源码网页源代码修改了影响别人吗
  • 网站后台是怎样制作的app开发公司排行榜做软件的公司
  • 有专门做网站的公司吗西安分类信息seo公司
  • 重庆璧山网站制作公司哪家专业商城网站建设 优帮云
  • 双语网站建设费用安徽省芜湖建设定额网站
  • 常州市城乡建设局网站wordpress 阿里云cdn
  • 福州制作网站设计哪里比较好百度网址大全官方网站
  • 一般做美食网站的产品需求我想做个网站
  • 成品网站制作公司应用公园是免费的吗
  • 做毕业网站的流程网站建设价格一览表
  • 企业服务网站开发做网站怎样建立服务器
  • 电子商务他们的代表网站360免费wifi官网
  • 网站后端开发软件cc域名做门户网站
  • 保定设计网站超云建站
  • 建筑工程网官网入口优化网站关键词排名软件