【发布时间】:2010-10-07 10:27:30
【问题描述】:
我正在尝试实现一种仅使用主键删除实体的存储库方法,主要是因为从 web 应用程序中,我通常只在从网页调用“删除请求”时才知道主键。
由于 ORM,今天的选择是从数据库中获取实体,然后将其删除,这给了我额外的往返。
我可以使用 HQL 删除,但由于我想为所有实体创建一个通用的删除方法,除非我使用反射找出哪个字段是主键(可行,但感觉不到正确)。
或者 NHibernate 的本质是需要实体才能正确处理级联?
我尝试了这种方法,假设它不会加载实体,除非明确需要,但还没有时间测试它。也许有人可以阐明如何处理?
var entity = session.Load<T>( primaryKey );
session.Delete( entity );
编辑:现在已经对其进行了测试,似乎它仍然在删除之前对实体进行了完全选择。
【问题讨论】:
标签: c# nhibernate