gpt4 book ai didi

nhibernate - 如何在 NHibernate 中有效地通过 ID 删除对象?

转载 作者:行者123 更新时间:2023-12-03 16:46:19 24 4
gpt4 key购买 nike

我们在服务器端使用 NHibernate 作为 ORM。

有时,需要从数据库中删除一个对象,只给出该对象的类型和 ID。此外,删除的对象之前未被提取(因此它不在 session 缓存或其他任何内容中)。

无论如何,我正在使用 ISession.Delete(query) 重载,其中查询与 from Dummy where Id=5 一样简单。

我的问题是,为什么 NHibernate 在删除之前获取对象?据我所知,我为一次操作支付了两次往返服务器的费用,直觉上应该只需要一次往返。

有没有一种方法可以通过 NHibernate 的类型和 ID 从数据库中删除一个对象,这样它只需要一次往返?

最佳答案

也可以自己用HQL删除。

session.CreateQuery("delete from Table where id = :id")
.SetParameter("id", id)
.ExecuteUpdate();

但这不会级联删除,我认为这是它需要先加载的原因之一。

关于nhibernate - 如何在 NHibernate 中有效地通过 ID 删除对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2321287/

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