示例#1
0
 /// <summary>
 /// Adiciona uma query
 /// </summary>
 /// <param name="query"><see cref="Queryable"/> a ser adicionado</param>
 /// <param name="callback">Função de callback da consulta</param>
 public MultiQueryable Add(Queryable query, QueryCallBack callback)
 {
     _queries.Add(query);
     if (callback != null)
     {
         QueryCallBackWrapper wrapper = new QueryCallBackWrapper();
         wrapper.QueryCallBack = callback;
         _callbacks.Add(_queries.Count - 1, wrapper);
     }
     return(this);
 }
示例#2
0
 public MultiQueryable Add <TModel>(Queryable query, QueryCallBack <TModel> callback, QueryFailedCallBack failedCallBack, IQueryResultBindStrategy bindStrategy, IQueryResultObjectCreator objectCreator)
 {
     _queries.Add(query);
     if (bindStrategy == null && objectCreator == null)
     {
         var ts = TypeBindStrategyCache.GetItem(typeof(TModel), t => new QueryResultObjectCreator(t));
         objectCreator = ts;
         bindStrategy  = ts;
     }
     if (bindStrategy == null)
     {
         bindStrategy = new TypeBindStrategy(typeof(TModel), objectCreator);
     }
     if (callback != null)
     {
         QueryCallBackWrapper <TModel> wrapper = new QueryCallBackWrapper <TModel>();
         wrapper.QueryCallBack       = callback;
         wrapper.QueryFailedCallBack = failedCallBack;
         wrapper.BindStrategy        = bindStrategy;
         wrapper.ObjectCreator       = objectCreator;
         _callbacks.Add(_queries.Count - 1, wrapper);
     }
     return(this);
 }