小编Ben*_*nes的帖子

将IEnumerable的IEnumerable转换为字典

问题是在跑完之后

 reportData = dbContext.FinancialsBySupplierAuditPeriodStatusType
                        .Where(v => v.ReviewPeriodID == reportFilter.ReviewPeriodID && v.StatusCategoryID == reportFilter.StatusCategoryID)
                        .GroupBy(s => new { s.SupplierID })

                        .Select(g => new DrilldownReportItem {
                            SupplierID = g.Key.SupplierID,
                            SupplierName = g.Max(v => v.SupplierName),
                            AccountNo = g.Max(v => v.AccountNo),
                            TempTotals = g.Select(v => new TempTotals { ClaimType = v.TypeDesc ?? "Old Claims", Amount = v.Amount })
                        }).OrderBy(r => r.SupplierName).ToList();
Run Code Online (Sandbox Code Playgroud)

Temp totals是一个IEnumerable,它包含一个简单类的IEnumerable

public class TempTotals {
    public string Type { get; set; }
    public decimal? Amount { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我们的想法是获取这些数据并将其分组到一个字典中,以便我可以获得所有金额的总和,其中密钥是类型.

最终结果应如下所示: …

c# linq dictionary entity-framework

5
推荐指数
1
解决办法
124
查看次数

从表达式中的集合访问嵌套属性

好的,稍微设置一下上下文,我正在使用此类使用表达式树构建动态 Linq 搜索子句

public class HomeTableInvoice {
    public int Sys_InvoiceID { get; set; }
    public bool Turnover { get; set; }
    public int FK_StatusID { get; set; }
    public string InvoiceNumber { get; set; }
    public DateTime InvoiceDate { get; set; }
    public string DocType { get; set; }

    public ICollection<InvoiceCustomFields> InvoiceCustomFields { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我设法让一切正常工作,我使用的参数是 HomeTableInvoice,我可以使用

var parameter = Expression.Parameter(typeof(HomeTableInvoice), "invoice");
prop = Expression.Property(param, filter.SysName);
Run Code Online (Sandbox Code Playgroud)

filter.SysName 是我希望过滤的字段。

尝试在底部为 ICollection 构建表达式时会出现问题。类 InvoiceCustomFields 包含

public class InvoiceCustomFields : CustomFieldsBase …
Run Code Online (Sandbox Code Playgroud)

c# linq expression

5
推荐指数
1
解决办法
1623
查看次数

标签 统计

c# ×2

linq ×2

dictionary ×1

entity-framework ×1

expression ×1