示例#1
0
        private IProcResult ExecuteAndGetResult(string procName, object model, ProcArgs args)
        {
            IProcLocator locator = this.Context?.Locator ?? new ProcLocator();
            IProcEngine  engine  = this.Context?.Engine ?? new ProcEngine(null);

            PageDescriptor descriptor = locator.FindPage(procName, this.GetType());
            ProcFactory    factory    = engine.Proc(descriptor, args);

            return(factory(model));
        }
示例#2
0
        public string Sql <TModel, TResult>(Runnable <TModel, TResult> model)
        {
            IProcLocator locator = this.Context?.Locator ?? new ProcLocator();
            IProcEngine  engine  = this.Context?.Engine ?? new ProcEngine(null);

            PageDescriptor descriptor = locator.FindPage("Query", this.GetType());
            ProcArgs       args       = new ProcArgs(typeof(Runnable <TModel, TResult>), typeof(List <TResult>));
            ProcFactory    factory    = engine.Proc(descriptor, args);

            return(factory(model).Buffer.ReadToEnd().Text.Trim());
        }
示例#3
0
 public AccessorContext(IProcLocator locator, IProcEngine engine)
 {
     this.Locator = locator ?? throw new ArgumentNullException(nameof(locator));
     this.Engine  = engine ?? throw new ArgumentNullException(nameof(engine));
 }