我使用ReferencesAny作为我的组织成员资格功能。基本上它必须允许实现一个接口(IMember)的任何实体可以加入到不同的IOrganization。
现在我在数据库中有以下列: MemberID , MemberType , OrganizationID , OrganizationType (类型适用于meta到不同的不同实体)
接下来,我正在使用
public abstract class OrganizationService<T> where T : IOrganization {
...
}
保存数据效果很好,但查询有点棘手。
所以问题是,如果我有 CompanyService : OrganizationService<Company>
我该如何过滤,那么 CompanyService 中的某些方法(如 GetAll ())只能 OrganizationType ='Company'的<组织。可以直接通过NHibernate查询进行过滤还是......?我知道我可以按类型进行过滤,但我想在执行查询之前这样做,因为OrganizationType是元值,因为我没有可以在LINQ to NHib查询中使用的属性。
另外,我读过 NHibernate ReferencesAny pulling back the wrong type 但我需要通过查询来做到这一点。
像.Query("OrganizationType='Company'")
我希望我能解释清楚。