62,046
社区成员
发帖
与我相关
我的任务
分享
{
/*
* 模拟多个session操作student数据表
*/
var session1 = Z.Core.NHibernateCore.NHibernateHelper.OpenSession();
var session2 = Z.Core.NHibernateCore.NHibernateHelper.OpenSession();
var user1 = session1.Get<Model.Pub.User>("Design");
var user2 = session2.Get<Model.Pub.User>("Design");
//这时候,两个版本号是相同的
var tx1 = session1.BeginTransaction();
user1.Remark = DateTime.Now.ToString();
tx1.Commit();
//这时候,两个版本号是不同的,其中一个的版本号递增了
while (true)
{
var tx2 = session2.BeginTransaction();
try
{
user2.Remark = DateTime.Now.ToString();
tx2.Commit();
break;
}
catch (Exception ex)
{
tx2.Rollback();
tx2.Dispose();
session2.Evict(user2);
//session2.Clear();
user2 = session2.Get<Model.Pub.User>("Design");
}
}