我一直在试着应该是一个简单的问题。我正在尝试进行以下基本操作
1)检查实体是否存在于ID
以外的字段2)如果没有,请创建实体
问题是这是一个多线程的控制台应用程序,所以我需要以某种方式通过ID以外的字段获取实体并将LockMode设置为Upgrade(或者至少我认为需要做什么)。从我看来,ISession无法做到这一点。
有什么想法吗?
答案 0 :(得分:0)
在单个进程中使用全局锁定对象
lock(existsLocker)
{
var entity = session.Query<Entity>().Where(...).FirstOrDefault();
if (entity == null)
{
entity = new Entity();
session.Save(entity);
session.Flush();
}
}