Eu tenho a entidade Product e escrevo um método em uma classe de repositório (usando npgsql). Mas recebo um erro:
não pôde ser traduzido. Reescreva a consulta em um formato que possa ser traduzido ou alterne explicitamente para a avaliação do cliente inserindo uma chamada para 'AsEnumerable', 'AsAsyncEnumerable', 'ToList' ou 'ToListAsync'. Consulte https://go.microsoft.com/fwlink/?linkid=2101038 para obter mais informações. System.InvalidOperationException: A expressão LINQ 's => s.ProductId == EntityShaperExpression:
public class Product:IEntity
{
public string Id { get; set; }
public string SerialNo { get; set; }
public string Imei { get; set; }
public string Name { get; set; }
}
public class ProductInput
{
public string ProductId { get; set; }
public string SerialNo { get; set; }
public string Imei { get; set; }
}
public async Task<List<Product>> GetProducts(List<ProductInput> input) //EfCoreProductRepository.cs
{
var result = (from product in (await GetDbContextAsync()).Products
where input.Any(s => s.ProductId == product.Id && s.SerialNo == product.SerialNo && s.Imei == product.Imei)
select product).ToList();
return result;
}
Como devo editar minha consulta para evitar esse erro?