Вы должны избавиться от анонимного типа в вашем предложении group by
, чтобы у движка EF не было проблем с переводом его в реальный SQL.
В качестве совета я бы предложил вам привыкнуть кдавая более значимые имена, например from leftJoined in tempJoin.DefaultIfEmpty()
. Таким образом, другим программистам или вам самим в будущем не нужно будет спрашивать: «Что, черт возьми, было Х? И С?»
using (var tigerContext = new TigerContext())
{
var stockRemaningList =
from stocks in tigerContext.Stock
join item in tigerContext.ItemsSum on stocks.LOGICALREF equals item.STOCKREF into tempJoin
from leftJoined in tempJoin.DefaultIfEmpty()
group leftJoined by stocks into grouped
select new StocksRemaning
{
StockCode = grouped.Key.CODE,
StockRef = grouped.Key.LOGICALREF,
StockName = grouped.Key.NAME,
ActualStock = grouped.Sum(i=>i.ONHAND)
};
return stockRemaningList.ToList();
}