此贴主要供自己回顾
今天,做项目时又遇到了数据库锁死的问题!
用的映射框架是fluent Nhibernate。
其中ProjectId和PersonId是两个结构体,他们都有名为Code的属性,这样两个值对象都映射到数据库中同一个字段中,所以当我在控制器提交表单时造成了数据库锁死
下面是解决办法,取个别名就行。
正好在学数据库,引用书中死锁产生的必要条件:
1、互斥条件:一个数据对象一次只能被一个事务所使用,即对数据的封锁采用排他式。
2、不可抢占条件:一个数据库对象只能被占有它的事务所释放,而不能被别的事务强行抢占。