以下は私のSQLステートメントです。LINQに変換できません
select o.CustId,c.CustName,Count(o.CustId) as Total_Orders from Customer c
inner join Orders o on c.CustId = o.CustId group by o.CustId,c.CustName
以下は私のSQLステートメントです。LINQに変換できません
select o.CustId,c.CustName,Count(o.CustId) as Total_Orders from Customer c
inner join Orders o on c.CustId = o.CustId group by o.CustId,c.CustName
このようなものはどうですか?
var query = db.Customers.Select(c => new
{
CustId = c.CustId,
CustName = c.CustName,
Total_Orders = db.Orders.Where(o => o.CustId == c.CustId).Count()
}
);
してみてください:
var query = from c in Customer
join o in Orders
on c.CustId
equals o.CustId
group x by new {o.CustId, c.CustName}
into g
select new
{
g.Key.CustId,
g.Key.CustName,
Total_Orders = g.Count()
};
以下はLINQクエリdb
です(EntityFramework DBContextです)。
var query = from c in db.Customers
join o in db.Orders on c.CustId equals o.CustId into g
groupby new { CustID = c.CustId, CustName=c.CustName } into gs
select new { CustID = gs.Key.CustId, CustName=gs.Key.CustName, Count= gs.Count() } into gs
var query = from c in context.Customers
select new
{
c.CustId,
c.CustName,
Orders = c.Orders.Count(),
};