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)