相当于内部连接..在冬眠的地方



>我有包含List<Subcategory>的类Category

使用 LINQ(最好(,我想获取所有Categories,但过滤它们的Subcategorie,以便生成的查询如下所示:

SELECT * FROM categories
LEFT JOIN subcategories ON subcategories.category_Id = categories.id WHERE subcategories.Retired = false

我试过:

session.QueryOver<Category>()
.Left.JoinQueryOver(c => c.Subcategories, () => subcategoryAlis, s => !s.Retired)
.List<Category>())

还有其他一些看起来很笨拙的技巧,但我似乎无法得到我需要的结果。上面的查询产生完全无用的结果,相同的条目多次出现,许多条目丢失。

自从我使用 NHibernate 以来已经有一段时间了,但我会使用一些专用的 DTO 类来转换为 Json,而不是直接从实体。我认为类似于以下 linq 查询的内容应该有效:

from c in session.Query<Category>
select new CategoryDto {
Name = c.Name, //and other properties
SubCategories = c.SubCategories
.Where(sc => !sc.Retired)
.Select(sc => new SubCategoryDto { ... })
.ToList()
}

相关内容

  • 没有找到相关文章

最新更新