protected void RegisterParameterType(InternalProcedureMetaData metaData, Type pmbType, PropertyInfo[] properties) { foreach (PropertyInfo property in properties) { InternalProcedureParameterType ppt = GetProcedureParameterType(pmbType, property); if (ppt == null) { continue; } metaData.AddParameterType(ppt); } }
public InternalProcedureMetaData CreateProcedureMetaData(String procedureName, Type pmbType) { InternalProcedureMetaData metaData = new InternalProcedureMetaData(procedureName); if (pmbType == null) { return(metaData); } else { if (!IsDtoType(pmbType)) { throw new IllegalStateException("The pmb type is Not DTO type: " + pmbType.Name); } } RegisterParameterType(metaData, pmbType, pmbType.GetProperties()); return(metaData); }
// - - - - - - - - - - - - // Call Procedure // - - - - - - - protected void SetupSpecifiedOutsideSqlCallCommand(String sqlCommandKey, MethodInfo method, OutsideSqlContext outsideSqlContext) { // - - - - - - - - - - - - - - - - - - - - - - - // The attribute of Specified-OutsideSqlContext. // - - - - - - - - - - - - - - - - - - - - - - - Object pmb = outsideSqlContext.ParameterBean; String procedureName = outsideSqlContext.OutsideSqlPath; // - - - - - - - - - - - - - - - // The attribute of SqlCommand. // - - - - - - - - - - - - - - - InternalProcedureMetaDataFactory myProcedureMetaDataFactory = new InternalProcedureMetaDataFactory(); Type pmbType = pmb != null?pmb.GetType() : null; InternalProcedureMetaData metaData = myProcedureMetaDataFactory.CreateProcedureMetaData(procedureName, pmbType); InternalProcedureCommand cmd = CreateInternalProcedureCommand(method, metaData); _sqlCommands.Add(sqlCommandKey, cmd); }
protected InternalProcedureCommand CreateInternalProcedureCommand(MethodInfo method, InternalProcedureMetaData metaData) { return(new InternalProcedureCommand(_dataSource, CreateDataReaderHandler(method), _commandFactory, _dataReaderFactory, metaData)); }