Вместо этого я бы использовал IQueryable в качестве абстракции. Сделайте так, чтобы ваш IRepository реализовывал IQueryable, тогда хранилище ActiveRecord делегировало бы Castle.ActiveRecord.Linq, хранилище плоских файлов было бы реализовано с использованием LINQ to XML и т. Д.