看似简单的问题比我想象的更难:
public class SomeCategory
{
public virtual int Id { get; set; }
public virtual IList<SomeClass> SomeInstances { get; set; }
}
public class SomeClass
{
public virtual int Id { get; set; }
}
SomeClass和SomeCategory之间存在1:m的关系(即SomeClass的实例只属于一个SomeCategory,SomeCategory可以有几个SomeClass实例)。
如何给出SomeClass Id(Linq to NHibernate)的SomeCategory?
答案 0 :(得分:3)
我假设您可以访问SomeCategory
列表,然后尝试
var category = someCategoryList.FirstOrDefault(e => e.SomeInstances
.Any(a => a.Id == someclassId));
答案 1 :(得分:1)
您也可以使用QueryOver来完成。
Parent parentAlias = null;
Child childAlias = null;
var query = session.QueryOver<Parent>(() => parentAlias)
.JoinAlias(()=> parent.Childs, ()=> childAlias)
.Where(()=> childAlias.Parent.Id == id)
.Select(()=> childAlias.Parent)
.SingleOrDefault();