public static void DataRowToObject <T>(DataRow row, DataModel mapping, T graph, DataToObjectDeligations dod) { ExceptionHelper.FalseThrow <ArgumentNullException>(row != null, "row"); ExceptionHelper.FalseThrow <ArgumentNullException>(mapping != null, "items"); ExceptionHelper.FalseThrow <ArgumentNullException>(graph != null, "graph"); ExceptionHelper.FalseThrow <ArgumentNullException>(row.Table != null, "row.Table"); foreach (DataColumn column in row.Table.Columns) { if (mapping.Properties.Contains(column.ColumnName)) { DataProperty property = mapping.Properties[column.ColumnName]; System.Type realType = GetRealType(property.MemberInfo); object data = row[column]; if (Convertible(realType, data)) { SetValueToObject(property, graph, ConvertData(property, data)); } } } }
private static void DoSelectSqlClauseBuilder(SelectSqlClauseBuilder builder, DataProperty property) { builder.AppendItem(property.FieldName); }
private static void SetValueToObject(DataProperty property, object graph, object data) { SetMemberValue(property.MemberInfo, graph, data); }
private static void DoInsertUpdateSqlClauseBuilder <T>(SqlClauseBuilderIUW builder, DataProperty property, T graph) { object data = GetPropertyValue(property, graph); if (data == null || data == DBNull.Value || data.Equals(TypeCreator.GetTypeDefaultValue(data.GetType()))) { if (string.IsNullOrWhiteSpace(property.DefaultValue)) { data = DBNull.Value; } else { builder.AppendItem(property.FieldName, property.DefaultValue, SqlClauseBuilderBase.EqualTo, true); } } else { builder.AppendItem(property.FieldName, data); } }
private static void DoWhereSqlClauseBuilderByPrimaryKey <T>(SqlClauseBuilderIUW builder, DataProperty item, T graph) { if (item.Primary) { object data = GetPropertyValue(item, graph); if ((data == null || data == DBNull.Value)) { builder.AppendItem(item.FieldName, data, SqlClauseBuilderBase.Is); } else { builder.AppendItem(item.FieldName, data); } } }