检查IQueryable结果集是否为空的最好方法是什么?
本文关键字:方法 是什么 结果 IQueryable 是否 检查 | 更新日期: 2023-09-27 18:11:36
我只是想知道检查IQueryable
结果是否没有值的最佳方法。
。如果我们有一个方法,比如
public static IQueryable<Table> DisplayAll()
{
var db = new DataContext();
var list= from data in db.Table select data;
return list;
}
然后像这样
var list = DisplayAll();
if(list != null)
{
//do something --- in here even if the result set has no values it will
// go to this line. It just say `enumeration yielded no results`
}
是否有可能检查结果集是否有内容??
谢谢
list
将永远不会是null
与LINQ;如果需要,它将简单地表示一个"空集合"。测试的方法是使用Any
扩展方法:
if (list.Any()) {
// list has at least one item
}
如果IQueryable没有产生结果,将抛出异常。我使用:
using System.Data.Entity; //for Async support in EF
var tQ = await _tableRepository.DisplayAll();
try { return await tQ.ToListAsync(); }
catch { return null; }
捕获异常并返回null;或者一个空的List
catch { return new List<Table>(); }
我是这么做的:
public IQueryable SomeFunc()
{
IQueryable result = Repo.SomeLinqQuery();
if (result.GetEnumerator().MoveNext() == false)
{
throw new Exception("Results empty");
}
return result;
}