如何将HQL内部联接转换为LINQ联接

时间:2013-02-17 20:55:33

标签: c# linq nhibernate join hql

如何在Linq中编写此HQL:

select a from A a
join a.childrenList b
where b = 1

childrenList是枚举列表,但未按类型映射到数据库 而是以其整数值保存。

这个HQL工作正常,但我想在Linq中编写它。 我不能写一些可以编译的东西。

1 个答案:

答案 0 :(得分:1)

我认为你可以做到

var results = 
    from a in db.Query<A>() 
    where a.childrenList.Any(b => b == (B)1)
    select a;

或使用链式方法:

var results = db.Query<A>().Where(a => a.childrenList.Any(b => b == (B)1));

关于上面的评论,我认为您可以删除from A a in ... select a语句,因为它们是多余的。