C# 我们的sql将发送给linq,并在我有时间时查看它是否有效。thanks@klent,很抱歉,这是打字错误,请尝试按新分组销售而不是按新分组销售我仍在获取销售行@klent,将销售更改为子销售,谢谢。我将尽快对此进行测试。我在“按新分组新销售”中遇到错误,

C# 我们的sql将发送给linq,并在我有时间时查看它是否有效。thanks@klent,很抱歉,这是打字错误,请尝试按新分组销售而不是按新分组销售我仍在获取销售行@klent,将销售更改为子销售,谢谢。我将尽快对此进行测试。我在“按新分组新销售”中遇到错误,,c#,.net,linq,C#,.net,Linq,我们的sql将发送给linq,并在我有时间时查看它是否有效。thanks@klent,很抱歉,这是打字错误,请尝试按新分组销售而不是按新分组销售我仍在获取销售行@klent,将销售更改为子销售,谢谢。我将尽快对此进行测试。我在“按新分组新销售”中遇到错误,我将尝试将您的sql转换为linq,并在有时间时查看它是否有效。thanks@klent,很抱歉,这是打字错误,请尝试按新分组销售而不是按新分组销售我仍然收到销售行@klent,将销售更改为子销售我收到此错误(无法创建“Anonymous ty


我们的sql将发送给linq,并在我有时间时查看它是否有效。thanks@klent,很抱歉,这是打字错误,请尝试按新分组销售而不是按新分组销售我仍在获取销售行@klent,将销售更改为子销售,谢谢。我将尽快对此进行测试。我在“按新分组新销售”中遇到错误,我将尝试将您的sql转换为linq,并在有时间时查看它是否有效。thanks@klent,很抱歉,这是打字错误,请尝试按新分组销售而不是按新分组销售我仍然收到销售行@klent,将销售更改为子销售我收到此错误
(无法创建“Anonymous type”类型的常量值。在此上下文中仅支持基元类型或枚举类型。)
这听起来像EF6错误:),但不能来自上述两个非常简单的查询中的任何一个。很可能是您在实际代码中执行了导致该异常的其他操作。我收到此错误
(无法创建“Anonymous type”类型的常量值。此上下文中仅支持基元类型或枚举类型。)
这听起来像EF6错误:),但不能来自上述两个非常简单的查询中的任何一个。很可能您正在实际代码中执行导致该异常的其他操作。
var query = (from product in SampleProductTable
from sale in SampleSalesTable
where (sale.ProductId == product.Id)
select new
{
    Id = product.Id,
    TotalSales = product.TotalSales + ((product.Id == sale.ProductId) ? sale.Amount : 0)
})
+-------+------------+---------+-----------------+-------+------------+
|  Id   | CategoryId | BrandId |      Name       | Price | TotalSales |
+-------+------------+---------+-----------------+-------+------------+
| mlk3  | MLK        | BRND1   | Creamy Milk     |     5 |         10 |
| snck2 | SNCK       | BRND2   | Chocolate Snack |     2 |         24 |
+-------+------------+---------+-----------------+-------+------------+
+-----+-----------+--------+
| Id  | ProductId | Amount |
+-----+-----------+--------+
| 120 | mlk3      |     55 |
| 121 | mlk3      |     15 |
| 122 | snck2     |     12 |
| 123 | mlk3      |      5 |
| 124 | mlk3      |     10 |
| 125 | snck2     |      2 |
| 126 | mlk3      |    115 |
| 127 | snck2     |      6 |
| 128 | snck2     |     34 |
+-----+-----------+--------+
+-------+------------+
|  Id   | TotalSales |
+-------+------------+
| mlk3  |        210 |
| snck2 |         78 |
+-------+------------+
SampleProductTable.Select(p => new 
{
    Id = p.Id,
    TotalSales = p.Sales.Sum(s => s.Amount)
}
 var query = (from product in SampleProductTable
              join sale in SampleSalesTable.GroupBy(c => c.ProductId) 
              on product.Id equals sale.Key
              select new
              {
                  Id = product.Id,
                  TotalSales = product.TotalSales + sale.Sum(c=>c.Amount)
              }).ToList();
var answer = (from product in SampleProductTable
              join sale in SampleSalesTable on product.Id == sale.ProductId into subSales
              from subSale in subSales.DefaultIfEmpty()
              group subSale by new { product.Id, product.TotalSales } into gr
              select new 
              {
                  gr.Key.Id,
                  TotalSales = gr.Sum(x => x == null ? 0 : x.Amount) + gr.Key.TotalSales
              }).ToList();
select p.Id, p.TotalSales + sum(coalesce(s.Amount, 0)) TotalSales 
from SampleProductTable p
left outer join SampleSalesTable s on p.Id = s.ProductId 
group by p.Id, p.TotalSales
var query =
    from product in SampleProductTable
    join sale in SampleSalesTable on product.Id equals sale.ProductId into productSales
    select new
    {
        Id = product.Id,
        TotalSales = product.TotalSales + productSales.Sum(sale => sale.Amount)
    };
public ICollection<Sale> Sales { get; set; }
var query = db.Products
    .Select(product => new
    {
        Id = product.Id,
        TotalSales = product.TotalSales + product.Sales.Sum(sale => sale.Amount)
    });
var querySyntax = (from product in SampleProductTable
    join sale in SampleSalesTable on product.Id equals sale.ProductId into sales
    from subSales in sales.DefaultIfEmpty()
    group subSales by new { product.Id, product.TotalSales }
    into grp
    select new
    {
        grp.Key.Id,
        TotalSales = grp.Sum(s => s.Amount) + grp.Key.TotalSales
    }).ToList();
var methodSyntax = (SampleProductTable
    .GroupJoin(SampleSalesTable, product => product.Id, sale => sale.ProductId,
        (product, sales) => new {product, sales})
    .SelectMany(s => s.sales.DefaultIfEmpty(), (s, subSales) => new {s, subSales})
    .GroupBy(ss => new {ss.s.product.Id, ss.s.product.TotalSales}, ss => ss.subSales)
    .Select(grp => new {grp.Key.Id, TotalSales = grp.Sum(s => s.Amount) + grp.Key.TotalSales})).ToList();
        var query = 
            from product in SampleProductTable
            join sale in SampleSalesTable.GroupBy(c => c.ProductId) 
                 on product.Id equals sale.Key into join1
            from lj in join1.DefaultIfEmpty() // left join 
            select new
            {
                Id = product.Id,
                TotalSales = product.TotalSales + (lj == null ? 0 : lj.Sum(c => c.Amount))
            };
            TotalSales = product.TotalSales + (lj?.Sum(c => c.Amount) ?? 0)