本文整理汇总了C#中IMapper.MapPropertyToColumn方法的典型用法代码示例。如果您正苦于以下问题:C# IMapper.MapPropertyToColumn方法的具体用法?C# IMapper.MapPropertyToColumn怎么用?C# IMapper.MapPropertyToColumn使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IMapper
的用法示例。
在下文中一共展示了IMapper.MapPropertyToColumn方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: FluentMappingsPocoData
public FluentMappingsPocoData(Type t, TypeDefinition typeConfig, IMapper mapper)
{
Mapper = mapper;
type = t;
TableInfo = new TableInfo();
// Get the table name
var a = typeConfig.TableName ?? "";
TableInfo.TableName = a.Length == 0 ? t.Name : a;
// Get the primary key
a = typeConfig.PrimaryKey ?? "";
TableInfo.PrimaryKey = a.Length == 0 ? "ID" : a;
a = typeConfig.SequenceName ?? "";
TableInfo.SequenceName = a.Length == 0 ? null : a;
TableInfo.AutoIncrement = typeConfig.AutoIncrement ?? true;
// Set autoincrement false if primary key has multiple columns
TableInfo.AutoIncrement = TableInfo.AutoIncrement ? !TableInfo.PrimaryKey.Contains(',') : TableInfo.AutoIncrement;
// Call column mapper
if (mapper != null)
mapper.GetTableInfo(t, TableInfo);
// Work out bound properties
bool explicitColumns = typeConfig.ExplicitColumns ?? false;
Columns = new Dictionary<string, PocoColumn>(StringComparer.OrdinalIgnoreCase);
foreach (var pi in t.GetProperties())
{
// Work out if properties is to be included
var isColumnDefined = typeConfig.ColumnConfiguration.ContainsKey(pi.Name);
if (explicitColumns)
{
if (!isColumnDefined)
continue;
}
else
{
if (isColumnDefined && (typeConfig.ColumnConfiguration[pi.Name].IgnoreColumn.HasValue && typeConfig.ColumnConfiguration[pi.Name].IgnoreColumn.Value))
continue;
}
var pc = new PocoColumn();
pc.PropertyInfo = pi;
// Work out the DB column name
if (isColumnDefined)
{
var colattr = typeConfig.ColumnConfiguration[pi.Name];
pc.ColumnName = colattr.DbColumnName;
if (colattr.ResultColumn.HasValue && colattr.ResultColumn.Value)
pc.ResultColumn = true;
else if (colattr.VersionColumn.HasValue && colattr.VersionColumn.Value)
pc.VersionColumn = true;
if (colattr.ForceUtc.HasValue && colattr.ForceUtc.Value)
pc.ForceToUtc = true;
if (TableInfo.PrimaryKey.Split(',').Contains(pi.Name))
TableInfo.PrimaryKey = (pc.ColumnName ?? pi.Name) + ",";
pc.ColumnType = colattr.DbColumnType;
}
if (pc.ColumnName == null)
{
pc.ColumnName = pi.Name;
if (mapper != null && !mapper.MapPropertyToColumn(pi, ref pc.ColumnName, ref pc.ResultColumn))
continue;
}
// Store it
Columns.Add(pc.ColumnName, pc);
}
// Trim trailing slash if built using Property names
TableInfo.PrimaryKey = TableInfo.PrimaryKey.TrimEnd(',');
// Build column list for automatic select
QueryColumns = (from c in Columns where !c.Value.ResultColumn select c.Key).ToArray();
}