【发布时间】:2021-09-07 11:56:19
【问题描述】:
我有一个方法可以执行 NHibernate 查询,并将值作为IEnumerable<long> 返回。它正在运行未来查询,因此结果实际上是 IFutureEnumerable<long> 类型。
public static IEnumerable<long> GetQueryResults(IEnumerable<long> idsToFilterOn)
{
if((idsToFilterOn == null) || !(idsToFilterOn.Any()))
{
return Enumerable.Empty<long>();
}
else
{
IQueryOver<MyTable> query = GenerateTheBigQuery(idsToFilterOn);
return query.Future<long>();
}
}
我希望这个结果返回IFutureEnumerable<long>,但我仍然想先检查参数,如果我知道结果将为空,我想只返回一个空值而不运行查询。
如果我只是将返回类型更改为IFutureEnumerable<long>,则返回Enumerable.Empty<long>() 的代码行会生成编译器错误(无法隐式转换类型...)
是否有像FutureEnumerable.Empty<long>() 这样的静态方法生成一个返回空列表的IFutureEnumerable?
【问题讨论】:
标签: nhibernate