我正在尝试使用无状态会话执行以下查询。
这会导致NotSupportedException异常,但是以下代码可以正常工作。
为什么我需要使用Where(),如果我添加Timeout(),而且为什么Timeout()在最后时它能起作用?
var products = session.Query<Product>().Timeout(5 * 60)
.GroupBy(p => p.ProductType)
.Select(p => new {ProductType = e.Key, Count = e.LongCount()}).ToList();
这会导致NotSupportedException异常,但是以下代码可以正常工作。
var products = session.Query<Product>().Timeout(5 * 60)
.Where(p => true)
.GroupBy(p => p.ProductType)
.Select(p => new {ProductType = e.Key, Count = e.LongCount()}).ToList();
var products = session.Query<Product>()
.GroupBy(p => p.ProductType)
.Select(p => new {ProductType = e.Key, Count = e.LongCount()}).Timeout(5 * 60).ToList();
为什么我需要使用Where(),如果我添加Timeout(),而且为什么Timeout()在最后时它能起作用?
AsEnumerable()
方法将该对象转换为IEnumerable
。在IEnumerable
/IQuerable
扩展和对象自身方法实现方面可能会出现一些混乱。 - Alex Skiba