#entity-framework #entity-framework-core
#entity-framework #entity-framework-core
Вопрос:
Пожалуйста, обратите внимание на это сообщение об ошибке :
Система.NotSupportedException: ‘Не удалось проанализировать значение выражения’ (Microsoft.EntityFrameworkCore.Query.Внутренний.EntityQueryable Это перегрузка метода ‘System.Linq.Запрашивается.Except’ в настоящее время не поддерживается.’
Поддерживается ли в более новых версиях ef core?
мой код :
var tuple = SearchBrand(searchTerm);
var result = GetExceptionsBrand(tuple.Item1, categoryId);
return Json(new
{
iTotalDisplayRecords = tuple.Item2,
iDisplayedBrand = result
.Skip(page * 10)
.Take(10)
.ToList(),
});
public async Task<Tuple<IQueryable<BrandDto>, int, int>>SearchBrand(string searchTerm)
{
var result = _context.Brands
.Where(c => c.IsDeleted == displayIsDeleted)
.WhereDynamic(searchTerm)
return new Tuple<IQueryable<BrandDto>, int, int>(result,
filteredResultsCount, totalResultsCount);
}
public IQueryable<BrandDto> GetExceptionsBrand(IEnumerable<BrandDto> filteredBrand, int categoryId)
{
var query = _context.CategoriesBrands.Where(x => x.CategoryId == categoryId);
var selectedList = new List<BrandDto>();
foreach (var item in query)
{
var cb = new BrandDto()
{
BrandDto_BrandId = item.BrandId
};
selectedList.Add(cb);
}
IQueryable<BrandDto> ExcpetList = filteredBrand.AsQueryable().Except(selectedList, new ComparerBrand());
return ExcpetList;
}
Комментарии:
1. » Поддерживается в более новых версиях ef core?» (1) Какую версию EF Core вы используете? (2) Что такое сбой запроса (похоже, что существует неподдерживаемая
Except
перегрузка метода (с помощью средства сравнения равенства?), Но нам нужно это увидеть)?2. @IvanStoev : я использую ef core 2.1
3. Хорошо, теперь запрос. И, пожалуйста, укажите оба в вопросе, а не в комментариях.
4. Если вы используете это , это не поддерживается и не будет поддерживаться. Если вы используете «обычный»
Except
, это зависит — нам нужно увидеть запрос.5. @IvanStoev : верните отфильтрованный бренд. Except(selectedList, new ComparerBrand()). AsQueryable() это работа, большое вам спасибо