在NHibernate中映射级别上过滤实体

dra*_*fly 3 nhibernate

假设我有和数据库表名为People,以及实体People.假设我需要一种快速方法来删除应用程序中随处可见的人员子集.所以我将IsDeleted列添加到People表,并将该列中的值设置为1.

在Entity Framework中,有一种机制可以指定,对于在IsDeleted列中具有值的实体的实例,不应该获取设置为1,并且映射框架会自动过滤数据.用NHibernate可以实现吗?

Mir*_*vic 7

您可以where类映射中定义属性.

where(可选)指定在检索此类的对象时要使用的任意SQL WHERE条件

<class ... where="IsDeleted = 0">
Run Code Online (Sandbox Code Playgroud)

如果您正在使用Fluent NHibernate,那么只需在映射类中定义:

Where("IsDeleted = 0");
Run Code Online (Sandbox Code Playgroud)

NH的代码映射应该类似于Fluent NHibernate的映射.