使用NHibernate更新Top n

时间:2014-09-11 12:24:34

标签: nhibernate

如何让NHibernate生成这个t-sql请求?

更新top(n)任务 设置MODIFICATIONS 其中CONDITION

我不想进行交易+批量更新。

1 个答案:

答案 0 :(得分:0)

请检查一下:

引用的代码段:

ISession session = sessionFactory.OpenSession();
ITransaction tx = session.BeginTransaction();
string hqlVersionedUpdate = "update versioned Customer set name = :newName where name = :oldName";
int updatedEntities = s.CreateQuery( hqlUpdate )
        .SetString( "newName", newName )
        .SetString( "oldName", oldName )
        .ExecuteUpdate();
tx.Commit();
session.Close();

因此,通过这种方式,我们可以使用HQL(使用我们的域模型)定义UPDATE并在数据库端直接执行udpate

注意:有关详细信息,请查看此博文:Ayende的NHibernate – Executable DML