我们在服务器端使用NHibernate作为我们的ORM。如何在NHibernate中有效地使用ID删除对象?
有时,需要从数据库中删除一个对象,只给出该对象的类型和ID。另外,被删除的对象之前没有被提取(所以它不在会话缓存中或其他)。
无论如何,我正在使用ISession.Delete(query)
过载,其中查询与from Dummy where Id=5
一样普通。
我的问题是为什么NHibernate删除它之前获取对象?据我所知,我付出了双倍往返服务器的手术费用,直观上应该只需一次往返。
有没有办法通过NHibernate的类型和ID从数据库中删除一个对象,这样只需要一次往返?
是的,我的猜测是删除函数必须以触发加载的方式访问代理。 – dotjoe 2010-02-23 22:19:11
和懒加载? – 2010-02-23 22:44:22
我至少可以确认,如果延迟加载关闭,Load仍然首先执行SELECT。我还没有试图打开延迟加载类,但看看是否有帮助... – 2011-01-05 22:05:34