protected void Contem( Expression <Func <TObjeto, object> > propriedade, Type tipoDoRepositorio, Expression <Action <IRepositorioConceitoComPortador <object>, TObjeto> > metodoDeDefinicao, Expression <Func <IRepositorioConceitoComPortador <object>, TObjeto, object> > metodoDeObtencao, Expression <Action <IRepositorioConceitoComPortador <object>, TObjeto> > metodoDeExclusao) { var prop = (PropertyInfo)ExtraiaMembro(propriedade); var methObtencao = (MethodInfo)ExtraiaMethodFunc(metodoDeObtencao); var paramObtencao = ExtraiaParametrosFunc(metodoDeObtencao); var methDefinicao = (MethodInfo)ExtraiaMethodAction(metodoDeDefinicao); var methExclusao = (MethodInfo)ExtraiaMethodAction(metodoDeExclusao); var repositorio = (Type)ExtraiaRepositorioFunc(metodoDeObtencao); MapeamentoDePropriedades.Add( new MapeamentoDePropriedade() { TipoDeMapeamento = EnumTipoDeMapeamento.CONTEM, Propriedade = prop, MetodoParaDefinicao = methDefinicao, MetodoParaObtencao = methObtencao, ParametrosParaObtencaoOuExclusao = paramObtencao, MetodoParaExclusao = methExclusao, Repositorio = repositorio }); }
protected void Mapeia( Expression <Func <TObjeto, object> > propriedade, string coluna) { var prop = (PropertyInfo)ExtraiaMembro(propriedade); MapeamentoDePropriedades.Add( new MapeamentoDePropriedade() { Coluna = coluna, Propriedade = prop, TipoDeMapeamento = EnumTipoDeMapeamento.MAPEIA }); }
protected void Referencia(Expression <Func <TObjeto, object> > propriedade, string coluna, Type tipoDoRepositorio, Expression <Func <IRepositorio <IConceito>, object, object> > metodoDeObtencao) { var prop = (PropertyInfo)ExtraiaMembro(propriedade); var methObtencao = (MethodInfo)ExtraiaMethodFunc(metodoDeObtencao); var repositorio = tipoDoRepositorio; MapeamentoDePropriedades.Add( new MapeamentoDePropriedade() { Coluna = coluna, Propriedade = prop, MetodoParaObtencao = methObtencao, Repositorio = repositorio, TipoDeMapeamento = EnumTipoDeMapeamento.REFERENCIA }); }