Нужна помощь по ядру Entity Framework - PullRequest
0 голосов
/ 11 июля 2020

У меня возникают проблемы с получением точных данных при использовании нижеприведенного запроса 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...