我们在服务器端使用NHibernate作为我们的ORM.
有时,只需要给定该对象的类型和ID,就需要从数据库中删除一个对象.此外,之前未获取已删除的对象(因此它不在会话缓存中或其他任何内容中).
无论如何,我正在使用ISession.Delete(query)重载,其中查询是微不足道的from Dummy where Id=5.
我的问题是为什么NHibernate在删除它之前获取对象?据我所知,我正在支付服务器的双往返费用,直观地应该只进行一次往返.
有没有办法通过NHibernate的类型和ID从数据库中删除对象,这样只需要一次往返?
您也可以使用HQL自行删除它.
session.CreateQuery("delete from Table where id = :id")
.SetParameter("id", id)
.ExecuteUpdate();
Run Code Online (Sandbox Code Playgroud)
但这不会级联删除,我认为这是它需要首先加载的一个原因.
| 归档时间: |
|
| 查看次数: |
2905 次 |
| 最近记录: |