gpt4 book ai didi

c# - 更新记录 Nhibernate 和 Iqueryable

转载 作者:行者123 更新时间:2023-11-30 17:16:14 25 4
gpt4 key购买 nike

假设我想将具有某种状态的表的所有行更新为另一种状态。我正在使用 Nhibernate 的存储库模式。我的存储库中有一个方法可以让我获得 Iqueryable<T>。 .

那么我该如何为此编写更新。我不想获取所有元素,转换为 List 然后更新它。事实上,我什至不希望 Nhibernate 选择我的行列表。它只需要使用我提供的值在数据库中单独运行更新语句。

那么我怎样才能做到这一点..

最佳答案

NHibernate 支持这种通过 HQL 的批量更新。参见 http://www.nhforge.org/doc/nh/en/index.html#batch-direct .尝试类似这样的方法...

public class ThingRepository : Repository<Thing>, IThingRepository
{
public int UpdateStatus(ThingStatus oldStatus, ThingStatus newStatus)
{
var query = Session.CreateQuery("UPDATE Thing SET Status = :newStatus WHERE Status = :oldStatus")
.SetEnum("oldStatus", oldStatus)
.SetEnum("newStatus", newStatus);

return query.ExecuteUpdate();
}
}

关于c# - 更新记录 Nhibernate 和 Iqueryable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7366311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com