c# - NHibernate一对多条件查询

标签 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;
}

最佳答案

您需要添加别名或条件

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

关于c# - NHibernate一对多条件查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4702551/

相关文章:

c# - 如何使用控制台应用程序存储 MIniProfiler 数据

c# - 为什么 'Lambda' 在我的 LINQ to Entities 语法中不受支持

nhibernate - Fluent NHibernate - 级联所有删除孤儿在删除时不做任何事情

Java Criteria API 查询具有复合主键的桥表

c# - NHibernate Criteria API 是否支持对集合属性的预测?

c# - Viewbox 最小字体大小

c# - 如何获取包含调用当前方法的方法的类的名称?

xml - 数据库中的 NHibernate XML 文档到实体中的 Expando 对象

nhibernate - 如何在 NHibernate 上使用 QueryOver 选择自定义结果

NHibernate:将 ICriteria 转换为 DetachedCriteria