Если я понимаю, что вы спрашиваете, то ответ, вероятно, да, но сложность использования атрибутов не стоит. Не проще ли сделать второй пример кода следующим образом?
// Edited to make more sense, but see below...
public IQueryable<T> FilterByClientId()
{
return All().Where(row => _clientIds.ClientIds.Contains<long>(row.ClientId) );
}
РЕДАКТИРОВАТЬ: на основе вашего комментария, попробуйте определить FilterByClientId как метод расширения с общим ограничением:
public static IQueryable<T> FilterByClientId(this IQueryable<T> queryable) where T : IHasClientId
{
return queryable.Where(row => _clientIds.ClientIds.Contains<long>(row.ClientId) );
}