【问题标题】:Create empty IFutureEnumerable instance创建空的 IFutureEnumerable 实例
【发布时间】: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&lt;long&gt;,但我仍然想先检查参数,如果我知道结果将为空,我想只返回一个空值而不运行查询。

如果我只是将返回类型更改为IFutureEnumerable&lt;long&gt;,则返回Enumerable.Empty&lt;long&gt;() 的代码行会生成编译器错误(无法隐式转换类型...)

是否有像FutureEnumerable.Empty&lt;long&gt;() 这样的静态方法生成一个返回空列表的IFutureEnumerable

【问题讨论】:

    标签: nhibernate


    【解决方案1】:

    查看代码,似乎没有对该概念的任何本机支持。 IFutureEnumerable 由两种类型实现,其中一种已被弃用,也没有提供空的概念。

    我想这留给你创建一个实现支持空虚的IFutureEnumerable&lt;T&gt;的类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-13
      相关资源
      最近更新 更多