これを検索してみましたが、これを理解するために使用する 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