簡體   English   中英

System.InvalidOperationException: LINQ 表達式 'GroupByShaperExpression:

[英]System.InvalidOperationException: The LINQ expression 'GroupByShaperExpression:

我嘗試獲取特定位置的項目摘要。 我嘗試將它們分組,因為一個項目可以在特定位置多次出現並獲取該項目的摘要。它與 ITEMID 和 REMAIN 一起工作正常但是當我嘗試訪問時它失敗了描述我的命令看起來像這樣

var items1 = await _context.Set<Comitemtran>()
    .Include(c => c.Bzitem)?
    .Include(c => c.Bzchopp)?
    .Include(c => c.Bzitemlot)?
    .Include(c => c.Bzstoreplace)?
    .Where(c => c.Bzstoreplaceid == placecode).GroupBy(c => c.Bzitemid).Select(group => new ItemTransView
    {
        BZITEMID = group.Key,
        BZDESC = group.Where(c => c.Bzitemid == group.Key).FirstOrDefault().Bzitem.Bzdesc,


        BZREMAIN = group.Sum(s => s.Bzquantity)
    }).ToListAsync();

當我執行它時,我在 postman 上收到此響應:

System.InvalidOperationException: LINQ 表達式 'GroupByShaperExpression: KeySelector: c.BZITEMID, ElementSelector:EntityShaperExpression: EntityType: Comitemtran ValueBufferExpression: ProjectionBindingExpression: EmptyProjectionMember IsNullable: False.Select(s => First.Bzi).被翻譯。 以可翻譯的形式重寫查詢,或通過插入對“AsEnumerable”、“AsAsyncEnumerable”、“ToList”或“ToListAsync”的調用顯式切換到客戶端評估。

Description添加到分組鍵。 在這種情況下查詢將被翻譯成 SQL

var items1 = await _context.Set<Comitemtran>()
    .Where(c => c.Bzstoreplaceid == placecode)
    .GroupBy(c => new { c.Bzitemid, c.Bzitem.Bzdesc })
    .Select(group => new ItemTransView
    {
        BZITEMID = group.Key.Bzitemid,
        BZDESC = group.Key.Bzdesc,
        BZREMAIN = group.Sum(s => s.Bzquantity)
    })
    .ToListAsync();

請注意,當后面跟有Select時, Include將被忽略。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM