private void LoadMappings() { entityMapping = new OREntity(); entityMapping.Name = "PM_ALT_CRITERION_AGGR"; entityMapping.TableName = "dbo.PM_ALT_CRITERION_AGGR"; foreach (object[] propertyMapping in this.PropertyMappings) { ORProperty property = new ORProperty(); property.ColumnName = (string)propertyMapping[0]; property.DatabaseType = (DbType)propertyMapping[1]; property.IsNullable = (bool)propertyMapping[2]; property.IsPrimaryKey = (bool)propertyMapping[3]; property.Name = (string)propertyMapping[4]; property.Type = (Type)propertyMapping[5]; entityMapping.Properties.Add(property); } }
private void UpdateSome(PM_ALT_CRITERION_AGGR entity, DbTransaction transaction) { ArgumentValidator.CheckForNullArgument(entity, "entity"); ArgumentValidator.CheckForNullArgument(transaction, "transaction"); PersistentPM_ALT_CRITERION_AGGR PM_ALT_CRITERION_AGGREntity = entity as PersistentPM_ALT_CRITERION_AGGR; StringBuilder sqlUpdateSome = new StringBuilder(); sqlUpdateSome.Append("UPDATE dbo.PM_ALT_CRITERION_AGGR SET "); PropertyInfo[] propertyInfos = PM_ALT_CRITERION_AGGREntity.GetType().GetProperties(); Hashtable propertyValues = new System.Collections.Hashtable(); int columnCountForUpdate = 0; foreach (PropertyInfo propertyInfo in propertyInfos) { if (EntityMapping.ContainsProperty(propertyInfo.Name)) { object propertyValue = propertyInfo.GetValue(PM_ALT_CRITERION_AGGREntity, null); ORProperty property = EntityMapping[propertyInfo.Name]; if (!property.IsPrimaryKey) { if (!PM_ALT_CRITERION_AGGREntity.IsDefaultValue(propertyInfo.Name)) { propertyValues[propertyInfo.Name] = propertyValue; sqlUpdateSome.Append(" " + property.ColumnName + " = @" + property.ColumnName + ","); columnCountForUpdate++; } } else { propertyValues[propertyInfo.Name] = propertyValue; } } } if (columnCountForUpdate == 0) { return; } sqlUpdateSome.Remove(sqlUpdateSome.Length - 1, 1); sqlUpdateSome.Append(" WHERE 1 = 1 "); sqlUpdateSome.Append(" AND AggregationID = @AggregationID "); try { Database db = GetDatabaseInstance(); DbCommand dbCommand = db.GetSqlStringCommand(sqlUpdateSome.ToString()); foreach (DictionaryEntry de in propertyValues) { ORProperty property = EntityMapping[de.Key.ToString()]; db.AddInParameter(dbCommand, "@" + property.ColumnName, property.DatabaseType, de.Value); } int result = db.ExecuteNonQuery(dbCommand, transaction); if (result == 0) { throw new EntityNotFoundException(); } } catch (Exception ex) { ExceptionPolicy.HandleException(ex, ExceptionPolicy.DataAccessDefaultPolicy); } }