0
我不知道如何正確地描述它。我正在使用預先存在的域,其中某些實體可以包含版本化的子級。孩子們對自己的版本號負責,但最終,這個版本號只有在附屬父實體的情況下才有意義。NHibernate:(流利)映射/查詢基於訪問已經映射的集合屬性的Getter
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(如果它在第一個地方工作)。
查詢是在現實中比這個例子要複雜得多。這是一個大型的搜索查詢。我也是基於「博客」實體的屬性進行過濾(實際上它根本不是「博客」實體)。實際上,有更多的字段的行爲與上面的「VersionedItem」類似。 – kitsune