/// <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)); }
/// <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); }
/// <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); } }