private static TvpInfo CreateTvpInfoPrototype(HygienePropertyDefinition tableName, HygienePropertyDefinition[] columnDefinitions) { HygienePropertyDefinition[] array = new HygienePropertyDefinition[columnDefinitions.Length]; DataTable dataTable = new DataTable(); DataColumnCollection columns = dataTable.Columns; dataTable.TableName = tableName.Name; foreach (HygienePropertyDefinition hygienePropertyDefinition in columnDefinitions) { if (!hygienePropertyDefinition.IsCalculated) { DataColumn dataColumn = columns.Add(hygienePropertyDefinition.Name, (hygienePropertyDefinition.Type == typeof(byte[])) ? hygienePropertyDefinition.Type : DalHelper.ConvertToStoreType(hygienePropertyDefinition)); array[dataColumn.Ordinal] = hygienePropertyDefinition; } } dataTable.BeginLoadData(); return(new TvpInfo(tableName, dataTable, array)); }
private static void SerializeObjectToDataTable <T>(T source, HygienePropertyDefinition tableDefinition, ref UnifiedPolicyForSaveDataSet saveDataSet) where T : ConfigurablePropertyBag { if (source == null) { throw new ArgumentNullException("source"); } DataTable dataTable = saveDataSet[tableDefinition] as DataTable; if (dataTable == null) { throw new ArgumentNullException("table"); } HygienePropertyDefinition[] columns = UnifiedPolicyForSaveDataSet.mapTableToTvpColumnInfo[tableDefinition]; DataRow row = dataTable.NewRow(); UnifiedPolicyForSaveDataSet.PopulateRow(row, columns, source); dataTable.Rows.Add(row); }
private static void PopulateRow(DataRow row, HygienePropertyDefinition[] columns, ConfigurablePropertyBag dataSource) { if (columns == null) { throw new ArgumentNullException("columns"); } for (int i = 0; i < columns.Length; i++) { HygienePropertyDefinition hygienePropertyDefinition = columns[i]; if (hygienePropertyDefinition != null && !hygienePropertyDefinition.IsCalculated) { object obj = dataSource[hygienePropertyDefinition]; if (obj != hygienePropertyDefinition.DefaultValue) { row[i] = obj; } } } }
public TvpInfo(HygienePropertyDefinition tableName, DataTable tvp, HygienePropertyDefinition[] columns) { this.tableName = tableName; this.tvp = tvp; this.columns = columns; }