我想实现一个只使用主键来删除实体的存储库方法,主要是因为从一个webapp我通常只在调用“删除请求”时知道主键一个网页。只能通过主键删除NHibernate中的实体
由于ORM,今天的选项是从数据库中获取实体,然后删除它,这给了我一个额外的往返。
我可以使用HQL删除,但因为我想为所有实体创建一个通用的删除方法,除非我使用反射来找出哪个字段是主键(可以,但不能感觉正确)。
或者它是否需要实体才能正确处理级联的NHibernate性质?
我试过这种方法,假设它不会加载实体,除非明确需要,但是还没有时间来测试它。也许有人可以阐明如何处理这个问题?
var entity = session.Load<T>(primaryKey);
session.Delete(entity);
编辑:现在已经测试过它,它似乎还没有完全选择删除前的实体。
可能重复[如何删除对象通过在nhibernate中使用PK?](http://stackoverflow.com/questions/3063777/how-to-delete-an-object-by-using-pk-in-nhibernate) – 2010-10-07 14:26:06