コード例 #1
0
        protected void AddDefaultColumnMappings <TOperationEntity>(
            List <ColumnMapping <TOperationEntity> > mappings)
            where TOperationEntity : class
        {
            var ignoredProperties = IgnoredColumns.Select(x => x.Name).ToList();

            ignoredProperties.AddRange(mappings
                                       .Where(x => !x.IsPrimaryKey)
                                       .Select(x =>
            {
                var memberExpression = (x.SourceExpression.Body is UnaryExpression unaryExpression)
                        ? unaryExpression.Operand as MemberExpression
                        : x.SourceExpression.Body as MemberExpression;

                return(memberExpression?.Member.Name);
            })
                                       .Where(x => !string.IsNullOrEmpty(x)));

            var columns = typeof(TEntity)
                          .GetProperties()
                          .Where(x => !ignoredProperties.Contains(x.Name))
                          .ToList();

            if (KeyColumnMapping != null)
            {
                var keyExpression = (KeyColumnMapping.Body is UnaryExpression unaryExpression)
                    ? unaryExpression.Operand as MemberExpression
                    : KeyColumnMapping.Body as MemberExpression;

                columns.RemoveAll(x => x.Name == keyExpression.Member.Name);
            }

            ColumnMappings.AddRange(columns.Select(MakeColumnExpression <TEntity>));
        }
コード例 #2
0
 public DataTableMapping(string?sourceTable, string?dataSetTable, DataColumnMapping[]?columnMappings)
 {
     SourceTable  = sourceTable;
     DataSetTable = dataSetTable;
     if ((null != columnMappings) && (0 < columnMappings.Length))
     {
         ColumnMappings.AddRange(columnMappings);
     }
 }
コード例 #3
0
 public BulkCopyDataReader(List <T> data) : base(data)
 {
     ColumnMappings.AddRange(_PropertyInfos.Select(i => new SqlBulkCopyColumnMapping(i.Name, i.Name)));
 }