9
でサポートされているので、私はこのコードを持っている:残念ながら、それはこのエラーを投げだけがプリミティブ型または列挙型は、この文脈
public int saleCount(List<Shift> shifts) {
var query = (
from x in database.ItemSales
where shifts.Any(y => y.ID == x.shiftID)
select x.SalesCount
);
return query.Sum();
}
:私はシフトを定義し
Unable to create a constant value of type 'Shift'.
Only primitive types or enumeration types are supported in this context.
をだからここにはあり、その
[Table("Shifts")]
public class Shift : MPropertyAsStringSettable {
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public int SiteID { get; set; }
public string ShiftID_In_POS { get; set; }
public DateTime ShiftDate { get; set; }
}
私はShiftキーを押しながらShiftキーを押しながらLinqクエリで処理されます。そして私は "Shift"のリストで "Any"操作をしています。
可能な解決策の1つは、リストを多分Collectionなどに変更することです。その後、linqクエリで読み込んでいますが、その署名は何ですか?アイデアは、代わりにIDを使用して、クエリプロバイダにShift
オブジェクトを渡す避けるためです
public int saleCount(List<Shift> shifts) {
var shiftIds = shifts.Select(s => s.ID).ToList();
var query = (
from x in database.ItemSales
where shiftIds.Contains(x.shiftID)
select x.SalesCount
);
return query.Sum();
}
:
うまくいきましたが、リストを他のタイプのコレクションに変更するよう提案しましたが、これは素晴らしいことです。 – Bill