我不知道如何正确表达这一点。我正在使用一个预先存在的域,其中某些实体可以包含版本化的子项。孩子负责他们自己的版本号,但最终,这个版本号只在附加的父实体的上下文中才有意义。
public class Blog
{
public virtual IList<VersionedItem> VersionedItems { get; set; }
public virtual CurrentVersionedItem {
get {
return VersionedItems.OrderByDescending(x => x.Version).FirstOrDefault();
}
}
}
public class VersionedItem
{
public virtual Blog { get;set; }
public virtual int Version { get; set; }
public virtual string Content { get; set; }
public virtual int SomeNumber { get; set; }
}
以及我想要实现的目标:
var blogs = Session.Query<Blog>(x=> x.CurrentVersionedItem.SomeNumber == 5)
虽然 NHibernate 的 IQueryable 提供者很宽容,但我不会吃任何东西。有没有办法定义正确解析“CurrentVersionedItem”属性的(流利的)映射?
我也知道 CurrentVersionedItem 在这种情况下可能会返回 null 的事实(如果它首先起作用)。