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

questionAnswers(3)

yourAnswerToTheQuestion