public virtual TResult ExecuteQuery <TModel, TResult>(Query <TModel, TResult> query) where TModel : Model { try { Synchronizer.EnterRead(); object result = query.ExecuteStub(_model as TModel); EnsureIsolation(ref result, query); return((TResult)result); } finally { Synchronizer.Exit(); } }