Why I am getting this exception on this code?
var filteredLocationClassificationItems = _locationClassificationItemRepository.GetAll()
.Include(e =\> e.LocationClassificationFk)
.Include(e =\> e.ItemFk)
.WhereIf(!string.IsNullOrWhiteSpace(input.Filter), e =\> false)
.WhereIf(!string.IsNullOrWhiteSpace(input.LocationClassificationNameFilter), e =\> e.LocationClassificationFk != null && e.LocationClassificationFk.Name == input.LocationClassificationNameFilter)
.WhereIf(input.LocationClassificationIdFilter != null, e =\> e.LocationClassificationId == input.LocationClassificationIdFilter)
.WhereIf(!string.IsNullOrWhiteSpace(input.ItemNameFilter), e =\> e.ItemFk != null && e.ItemFk.Name == input.ItemNameFilter);
var SerialsLocations = \_itemSerialRepository.GetAll().Where(x =\> x.LocationClassificationId == input.LocationClassificationIdFilter && x.IsDeleted == false).Select(y =\> y.ItemId).ToList();
var totalCount = await filteredLocationClassificationItems.CountAsync();
foreach (var o in filteredLocationClassificationItems)
{
if (!SerialsLocations.Contains(o.ItemId)) { totalCount--; }
}
//var pagedAndFilteredLocationClassificationItems = filteredLocationClassificationItems
// .OrderBy(input.Sorting ?? "id asc")
// .PageBy(input);
var locationClassificationItems = from o in filteredLocationClassificationItems
join o1 in \_lookup_locationClassificationRepository.GetAll() on o.LocationClassificationId equals o1.Id into j1
from s1 in j1.DefaultIfEmpty()
join o2 in \_lookup_itemRepository.GetAll() on o.ItemId equals o2.Id into j2
from s2 in j2.DefaultIfEmpty()
select new
{
Id = o.Id,
LocationClassificationName = s1 == null || s1.Name == null ? "" : s1.Name.ToString(),
ItemName = s2 == null || s2.Name == null ? "" : s2.Name.ToString(),
PartNumber = s2 == null || s2.PartNumber == null ? "" : s2.PartNumber.ToString(),
o.ItemId,
o.LocationClassificationId,
s2.CountingType,
s2.RfidTagType
};
if (input.Sorting == "partNumber asc")
{
input.Sorting = "itemId asc";
}
if (input.Sorting == "partNumber desc")
{
input.Sorting = "itemId desc";
}
if (input.Sorting.IsNullOrWhiteSpace() || input.Sorting.Equals("null desc", StringComparison.OrdinalIgnoreCase) || input.Sorting.Equals("null asc", StringComparison.OrdinalIgnoreCase))
{
input.Sorting = "Id desc"; // or asc — your default
}
if(input.Sorting == "itemName desc")
{
input.Sorting = "Id desc";
}
var dbList = await locationClassificationItems.OrderBy(input.Sorting ?? "id asc").ToListAsync();
When input.Sorting == "itemName desc" I am gettiing exception on this code
var dbList = await locationClassificationItems.OrderBy(input.Sorting ?? "id asc").ToListAsync();
The exception is :
The LINQ expression 'DbSet()
.Where(l => __ef_filter__p_0 || !(((ISoftDelete)l).IsDeleted) && __ef_filter__p_1 || (Nullable)((IMustHaveTenant)l).TenantId == __ef_filter__CurrentTenantId_2)
.Where(l => (Nullable)l.LocationClassificationId == __p_0)
.LeftJoin(
inner: DbSet()
.Where(l0 => __ef_filter__p_3 || !(((ISoftDelete)l0).IsDeleted) && __ef_filter__p_4 || (Nullable)((IMustHaveTenant)l0).TenantId == __ef_filter__CurrentTenantId_5),
outerKeySelector: l => l.LocationClassificationId,
innerKeySelector: l0 => l0.Id,
resultSelector: (l, l0) => new TransparentIdentifier(
Outer = l,
Inner = l0
))
.LeftJoin(
inner: DbSet- ()
.Where(i => __ef_filter__p_6 || !(((ISoftDelete)i).IsDeleted) && __ef_filter__p_7 || (Nullable
)((IMustHaveTenant)i).TenantId == __ef_filter__CurrentTenantId_8),
outerKeySelector: ti => ti.Outer.ItemId,
innerKeySelector: i => i.Id,
resultSelector: (ti, i) => new TransparentIdentifier, Item>(
Outer = ti,
Inner = i
))
.OrderBy(ti0 => ti0.Inner == null || ti0.Inner.Name == null ? "" : ti0.Inner.Name.ToString())' could not be translated. Additional information: Translation of method 'object.ToString' failed. If this method can be mapped to your custom function, see https://go.microsoft.com/fwlink/?linkid=2132413 for more information. Either rewrite the query in a form that can be translated, or switch to client evaluation explicitly by inserting a call to 'AsEnumerable', 'AsAsyncEnumerable', 'ToList', or 'ToListAsync'. See https://go.microsoft.com/fwlink/?linkid=2101038 for more information.