2

だから私はこのかなり複雑なLINQクエリを持っています:

        // This query will get the top 10 items sold. 
        IEnumerable<IGrouping<Item, ItemSale>> results = (
            from x in database.ItemSales
            where shiftIDs.Contains(x.shiftID)
            group x by x.item into itemSalesGroup
            orderby itemSalesGroup.Sum(y => y.SalesValue) descending
            select itemSalesGroup
        ).Take(10);

そして、10 進数値に設定できなかったと言って y.SalesValue でクラッシュしています。これを修正するにはどうすればよいですか? 私は次のことを試しました:

        orderby itemGroup.Sum(y => (float?)y.SalesValue) ?? 0f descending
        orderby itemGroup.Sum(y => (float?)y.SalesValue ?? 0f) descending

関連するEntity-Framework Code Firstの定義は次のとおりです。

[Table("ItemSales")]
public class ItemSale {
    public int ID { get; set; }
    [Column("ItemID")]
    public int itemID { get; set; }
    [ForeignKey("itemID")]
    public Item item { get; set; }
    [Column("Shifts_ID")]
    public int shiftID { get; set; }
    [ForeignKey("shiftID")]
    public Shift shift { get; set; }
    ...
    public float SalesValue { get; set; }
}
4

2 に答える 2