我尝试对此进行搜索,但似乎找不到任何与我的 LINQ 查询匹配的内容来帮助我解决这个问题。
我在结果视图-> 基础对象的调试器中收到一条消息
+base {“无法创建'System.Object'类型的常量值。在此上下文中仅支持原始类型或枚举类型。”} System.SystemException {System.NotSupportedException}
这是我的 LINQ 查询(在 LINQPad 中返回结果很好......):
public IEnumerable<PendingItems> GetHazmatPendingShipping()
{
var pending = context.HazmatInfoes
.Where(h => (h.ShippingFlag.Equals(false) && (h.ShippingType.Equals("Manual"))))
.GroupBy(x => new {x.ToBU, x.FromBU}, y => new {y})
.Select(p => p);
return pending;
}
我知道我的返回类型是错误的。在我弄清楚为什么这个查询无法返回结果之后,我会继续努力。
我对这个问题的回答:
因为我有一个复合键 {string, string},所以我必须创建一个名为 PendingItems 的类。
public IQueryable<PendingItems> GetHazmatPendingShipping()
{
IQueryable<PendingItems> pending = context.HazmatInfoes
.Where(h => ((h.ShippingFlag.Value == false && h.ShippingType.Equals("Manual"))))
.GroupBy(x => new {x.ToBU, x.FromBU}, y => y)
.Select(p => new PendingItems {ToBu = p.Key.ToBU, FromBu = p.Key.FromBU, Items = p});
return pending;
}
PendingItems 类:
using System.Collections;
using System.Collections.Generic;
namespace Hazmat.Models
{
public class PendingItems : IEnumerable
{
public string ToBu { get; set; }
public string FromBu { get; set; }
public IEnumerable<HazmatInfo> Items { get; set; }
public IEnumerator GetEnumerator()
{
yield return this.Items;
}
}
}
谢谢,蒂姆
PS这个答案有助于解决这个问题: https ://stackoverflow.com/a/1775514/2733668