У меня возникают проблемы с получением точных данных при использовании нижеприведенного запроса EF Core в asp. net core mvc, когда в таблице клиентов для определенной учетной записи нет записей, тогда я получаю 1 вместо 0, когда я использую count () с левым соединением в приведенном ниже запросе EF.
Может ли кто-нибудь помочь в этом.
var AccountData = from acclist in _dbcontext.Accout
join departmentlist in _dbcontext.Departments on acclist.DepartmentId equals departmentlist.DepartmentId
join statuslist in _dbcontext.Statuses on acclist.StatusId equals statuslist.StatusId
join customerlist in _dbcontext.Customers on acclist.CustomerId equals customerlist.CustomerId into leftjoin
from custlist in leftjoin.DefaultIfEmpty()
where acclist.CaseStatusId == 2
group custlist by new { acclist.CaseID, acclist.AccName, acclist.AccNumber, acclist.CaseName, departmentlist.DepartmentName, statuslist.StatusName } into g
select new
{
_accId = g.Key.AccountID,
_accName = g.Key.AccountName,
_accNumber = g.Key.AccNumber,
_status = g.Key.StatusName,
_department = g.Key.DepartmentName,
_caseName = g.Key.CaseName,
_dataSize = g.Sum(customerlist => customerlist.DataSize),
_customerCount = g.Count()
};
Фактический T- SQL Запрос
select Account.CaseID, Account.AccNumber,Account.AccountName,
Account.CaseName, Departments.DepartmentName,Statuses.StatusName,
Sum(Customer.DataSize), Count(CustomerID)
from Account
inner join Departments on Account.DepartmentId = Departments.DepartmentId
inner join Statuses on Account.StatusId = statuses.StatusId
left join Customer on Account.CustomerId = Customer.CustomerId
where Account.StatusId = 2
group by Account.CaseID,Account.AccNumber,Account.AccountName,Account.CaseName,
Departments.DepartmentName,Statuses.StatusName