Fel*_*ani 4 c# linq nhibernate queryover
我有一个使用NHibernate使用Session.Query<T>
方法的linq查询,我在这个查询中获取一些复杂的属性和集合属性.我想知道,如何IN
从运算符中添加一个条件int[]
?看看我的代码:
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();
}
Run Code Online (Sandbox Code Playgroud)
我有另一个方法做一个查询来获得这个int[]
,我想在这里应用它,或者如果有任何方法在IN
运算符上添加这个子查询,我真的很感激!
OBS:如果必要,我可以转换int[]
成List<int>
.
我int[]
通过以下查询得到了这个:
return session.Query<Category>.Where(...).Select(x => x.Id).ToArray();
Run Code Online (Sandbox Code Playgroud)
我的第二个问题是,如何将此查询作为子查询添加到按类别筛选?
谢谢!
你真的不需要IN
操作员.你可以这样做:
.Where(x => idCategories.Contains(x.Category))
Run Code Online (Sandbox Code Playgroud)
注意:Contains
是一种扩展方法.您需要确保有一个using语句System.Linq
,但您可能已经拥有它.
归档时间: |
|
查看次数: |
1662 次 |
最近记录: |