使用 Fluent NHibernate,我可以通过以下方式将一对多关系映射到我的 User 类:
HasMany(x => x.Membership)
.KeyColumn("UserID")
.Where("Deleted = 0");
这按预期工作,它只获取尚未删除的成员资格记录。不说我有一个名为针对会员资格的最新字段,我知道这会为每个用户返回一条记录,我想说:
HasOne(x => x.CurrentMembership)
.Where("Current = 1");
但是没有 Where 方法。我知道我可以通过以下代码在代码中做到这一点:
public virtual Membership CurrentMembership
{ get { return Membership.Single(m => m.Current); } }
但这不允许我对此属性进行 LINQ 查询。过去我只是接受这是一个限制,但它确实开始在性能方面咬我。
如果有人可以提供帮助,我将不胜感激。