码迷,mamicode.com
首页 > Web开发 > 详细

我使用NHibernate在.NET中遇到的问题一记!

时间:2015-03-28 06:35:05      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:nhibernate   .net nhibernate   nhibernate无法正确更新数据库   

.Net ORM映射框架 NHibernate,本来是Java的东西,一群牛B轰轰的码农,移植到了.NET平台、是个非常不错的 ORM 映射框架、


故事开始啦 ~_~ !


下班的钟声已经敲响了,远远望去。打卡机处排着长队,打卡机,“嘟””嘟”“嘟”。。。


熊大:光头强,包裹数据推送过去了吧?为毛WMS不能配货,没有包裹订单明细?

光头强:怎么可能,你操作出错了?昨天我自己试的时候都没问题的。。。。。

熊大:错你妹儿啊,俺测试了N次,来,我掩饰给你看、(熊大坐下了下来)!


只见熊大趴在电脑前,四角朝地儿、操作了一遍、

“我擦,我才发现,包裹明细数据都没有了、就推送到WMS,这儿数据就没了 ?”熊大说


光头强一看。傻眼了。一连串的问号。。。。。?????


代码没有删除数据操作啊,怎么可能呢?于是乎,经过一会儿时间分析、

打开项目、F5 Debug 模式走起、走啊走!走啊走、半小时过去了。光头

强一点儿眉目也没有!!!


光头强开始怀疑 NHibemate的稳定性,代码逻辑的精密性了、要是按光头强以前的性格,直

接上SQL语句得了、还用TMD什么 ORM 框架,但这个项目。全部依赖 NHibernate,无可奈何、

光头强沉默了、


坐在旁边的熊二在研究怎么打鸟。见光头强沉默,靠了过来、窃窃的笑!嘿嘿哈哈哈~~----~~

两家伙再一次Debug走起、参数,数据的正确性,全部是TMD正确的、执行完更新包裹明细的方法

熊二查看了数据库的数据,“ 嗯,包裹明细数据还在、继续走”光头强道、

F5,F10,F11。F5,F10,F11。F5,F10,F11。。F5,F10,F11。。F5,F10,F11。。、终于走完了、

熊二再查看数据库的数据,傻眼了、数据不对了。某个字段值不对了。在执行NHibernate Update时

数据都还是对的、。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。


八戒在旁边吃西瓜,熊二问了句:“1.4.0.0版本的FluentNHibernate与数据库的交互模式是怎么样的”


“Insert,Delete是即时的,Update是只有Commit才会更新数据库的”,八戒说道。


光头强继续查看代码,终于发现了端倪、给NHibernate Update的数据源对象。属于引用类型。在NHibernate Commit之前、数据源在其他地方,被修改了!!!!!!!!!!!!!!!


傻眼了~—~。呵呵、下面是一些小小的体会与问题总结!!!!


1、对于 NHibernate数据库交互模式,Insert,Delete是即时的,Update是只有Commit才会更新数据库的(这个可能我个人的理解有问题,具体还需要看程序设置NHibernate的提交级别!)

2、对于给NHibernate做 Insert,Update,Delete的数据源,最大是不受任何“污染(数据源的值可能在某些地方被程序修改)”的数据源

3、遇到问题,请多多分析下,不要盲目的Debug!要学会分析问题,才能解决问题!

4、不熟悉的东西,不要随便用到您的项目中,除非你必须要它,那就一定要熟悉,甚至精通它!





本文出自 “傻帽” 博客,请务必保留此出处http://hotboy.blog.51cto.com/8826994/1625827

我使用NHibernate在.NET中遇到的问题一记!

标签:nhibernate   .net nhibernate   nhibernate无法正确更新数据库   

原文地址:http://hotboy.blog.51cto.com/8826994/1625827

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!