NHibernate基于聚合根id获取对象A的集合

时间:2009-08-31 18:23:04

标签: c# nhibernate collections

Class A
{
Guid ID{get;}
ISet<B> ClassBs {get;}
}


repository
public IList<B> GetAsBs(A a)
{
ICriteria ACriteria = Session.CreateCriteria(typeof(A));
ICriteria BCriteria = ACriteria.CreateCriteria("ClassBs");
A.Add(Restrictions.Eq("ID", a.ID));
return BCriteria.List<B>();
}

我可以在HQL np中完成此操作,但希望使用标准 我收到一个错误,它试图返回A而不是B

任何帮助都会很棒

1 个答案:

答案 0 :(得分:0)

我刚为感兴趣的人

去了HQL
            public IList<B> GetAsBs(A aClass)
            {
            string hql = @"
                SELECT B
                FROM    A a
                JOIN     a.ClassBs b
                WHERE  A.ID = :ID
            ";
            IQuery query = Session.CreateQuery(hql);
            query.SetParameter("ID", aClass.ID);

            return query.List<B>();
}