0

我一直在努力解决应该是一个简单的问题。我正在尝试执行以下基本操作

1)通过ID以外的字段检查实体是否存在

2)如果没有,创建实体

问题是这是在一个多线程的控制台应用程序中,所以我需要以某种方式通过 ID 以外的字段获取实体并将 LockMode 设置为 Upgrade(或者至少我认为这是需要做的)。据我所知,ISession 无法做到这一点。

有任何想法吗?

4

1 回答 1

0

在单个进程中使用全局锁对象

lock(existsLocker)
{
    var entity = session.Query<Entity>().Where(...).FirstOrDefault();
    if (entity == null)
    {
       entity = new Entity();
       session.Save(entity);
       session.Flush();
    }
}
于 2013-04-16T14:16:45.123 回答