예제 #1
0
 /// <summary>
 /// Executa a vinculação dos dados contidos no registro para o objeto informado.
 /// </summary>
 /// <param name="record">Registro da consulta.</param>
 /// <param name="mode">Modo da estratégia.</param>
 /// <param name="instance">Instancia onde será vinculado os dados.</param>
 /// <returns>Relação das propriedade na qual o bind foi aplicado.</returns>
 public IEnumerable <string> Bind(IRecord record, BindStrategyMode mode, ref object instance)
 {
     record.Require("record").NotNull();
     if (instance == null && _creator != null)
     {
         instance = _creator.Create();
     }
     return(CreateSession(record.Descriptor).Bind(record, mode, ref instance));
 }
예제 #2
0
        /// <summary>
        /// Recupera uma instancia de TModel pelo registro informado.
        /// </summary>
        /// <param name="record"></param>
        /// <returns></returns>
        private object Get(Record record)
        {
            object instance = _objectCreator.Create();

            _bindStrategy.Bind(record, BindStrategyMode.All, ref instance);
            return(instance);
        }
예제 #3
0
        /// <summary>
        /// Executa a vinculação dos dados contidos na enumeração de registro informados
        /// e retorna uma enumeração das instancias preechidas.
        /// </summary>
        /// <param name="records">Registros que serão processados.</param>
        /// <param name="mode">Modo da estratégia.</param>
        /// <param name="creator">Instancia responsável pela criação dos objetos.</param>
        /// <returns></returns>
        public IEnumerable <T> Bind <T>(IEnumerable <IRecord> records, BindStrategyMode mode, IQueryResultObjectCreator creator)
        {
            IQueryResultBindStrategySession session = null;

            foreach (var i in records)
            {
                if (session == null)
                {
                    session = CreateSession(i.Descriptor);
                }
                object result = creator.Create();
                session.Bind(i, mode, ref result);
                yield return((T)result);
            }
        }