using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using NHibernate.Linq; namespace AshMind.Sample.Repositories.Internal { public class KeyEnabledQueryProvider : QueryProvider { private readonly IQueryProvider inner; public KeyEnabledQueryProvider(IQueryProvider inner) { this.inner = inner; } public override object Execute(Expression expression) { expression = new KeyMethodToIdRewritingVisitor().Visit(expression); return this.inner.Execute(expression); } } }