Entity Framework Core 3.0 отличается результатами при использовании DbSet vs.DbQuery и FromSqlRaw - PullRequest
0 голосов
/ 21 октября 2019

Если я вызываю тот же код:

return _context.dtoCostCodes <br> .FromSqlRaw($"SELECT distinct '' as ID, CostCode, BusinessUnitID from CostCodes where IsActive = 1 and BusinessUnitID = '{id}'").ToList();

Сначала с моим DBContext, установленным как

public DbQuery<DTO.dtoCostCode> dtoCostCodes { get; set; }

, а затем:

public DbSet<DTO.dtoCostCode> dtoCostCodes { get; set; }

DbQuery дает мне правильные результаты как по количеству записей, так и по данным. Если я использую DbSet, он дает мне правильное количество записей, но первая строка дублируется снова и снова.

Есть идеи относительно причины такого поведения?

Меня беспокоит то, что в.net Core 3.0 DbQuery устарел, и я столкнусь с различными проблемами в будущем. Мы только что обновились с версии 2.2, где я смог использовать

            select new dtoCostCode
        {
            ID = c.ID,
            JDECostCode = c.JDECostCode,
            BusinessUnitID = c.BusinessUnitID
        }).Where(cc => cc.BusinessUnitID == id).GroupBy(cc => cc.JDECostCode).Select(y => y.First()).Distinct().ToListAsync();

Но он больше не поддерживается в версии 3.0

...