gpt4 book ai didi

c# - 在 NHibernate 上使用 Linq 的 IN 运算符

转载 作者:太空狗 更新时间:2023-10-30 00:20:29 24 4
gpt4 key购买 nike

我有一个使用 NHibernate 的 linq 查询 Session.Query<T>方法和我在这个查询中获取一些复杂的属性和集合属性。我想知道,如何使用 IN 添加条件来自 int[] 的运算符(operator)?看我的代码:

public IEnumerable<Product> GetProducts(int[] idCategories) 
{
// how to add IN condition here or a subquery
var query = Session.Query<Product>()
.Where(?????)
.Fetch(x=>x.Category)
.FetchMany(x=>x.Status).ThenFetch(x=>x.Item);

return query.ToList();
}

我有另一种方法进行查询以获取此 int[]我想在这里应用它,或者是否有任何方法可以在 IN 上添加此子查询接线员,我真的很感激!

OBS:我可以转换 int[]List<int>如果有必要。

编辑

我知道了 int[]通过这样的查询:

return session.Query<Category>.Where(...).Select(x => x.Id).ToArray();

我的第二个问题是,如何将此查询添加为子查询以按类别过滤?

谢谢!

最佳答案

您实际上并不需要 IN 运算符。你可以这样做:

.Where(x => idCategories.Contains(x.Category))

注意:Contains 是一种扩展方法。您需要确保您有 System.Linq 的 using 语句,但您可能已经有了它。

关于c# - 在 NHibernate 上使用 Linq 的 IN 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11524355/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com