NHibernate一对多条件查询

时间:2011-01-15 22:41:23

标签: c# nhibernate criteria

假设我有一个Post类和一个Tag类。 Post和Tag之间的关系是一对多的。如何编写Hibernate查询以检索具有给定标记的Post对象列表?

public IList<Post> FindByTag(Tag tag)
{
    IList<Post> posts;
    using (ISession session = HibernateUtil.GetSessionFactory().OpenSession())
    {
        posts = session.CreateCriteria<Post>()
            .Add(...) // what Criteria do I add?
            .List<Post>();
    }
    return posts;
}

1 个答案:

答案 0 :(得分:4)

您需要添加别名或标准

session.CreateCriteria<Post>()
.CreateAlias("Tags", "tag")
.Add(Restrictions.Eq("tag.Id", tag.Id))
.List<Post>();