Problema de transmissão de LINQ para entidades
Estou tentando filtrar uma consulta LINQ para entidades de maneira genérica, mas continuo recebendo um erro. Aqui está um pedaço de código:
private IQueryable<T> FilterDeletedEntities<T>(IQueryable<T> entities)
{
if (typeof(IDeletable).IsAssignableFrom(typeof(T)))
{
var deletableEntities = (IQueryable<IDeletable>)entities;
deletableEntities = deletableEntities.Where(entity => !entity.Deleted);
entities = (IQueryable<T>)deletableEntities;
}
return entities;
}
Basicamente, estou tentando filtrar as entidades excluídas (ou seja, o campo 'Excluído' é 'verdadeiro'), se e somente se a entidade for IDeletable (ou seja, possui o campo 'Excluído'). O problema é que não consigo converter IQueryable <IDeletable> de volta para IQueryable <T>.
Alguma ideia de como consertar isso? E antes que você pergunte: sim, este métodote para ser genérico.
Desde já, obrigado