问题描述
这是映射功能
var mapData = new Map<RxHsLocationStateTbl>().TableName("test");
mapData.Column(c => c.ContinentNamenormalized,cm => cm.WithName(nameof(RxHsLocationStateTbl.ContinentNamenormalized)));
return mapData;
我是否以此方式映射属性,然后一切正常
但是如果我尝试使此过程自动化并尝试自动映射属性,那么我会收到此错误
public static Map<T> AutoMap<T>(List<string> exclude) where T : class
{
var tableName = typeof(T).Name.ToLower();
var mapData = new Map<T>().TableName(tableName);
foreach (var p in typeof(T).GetProperties())
{
if (!exclude.Contains(p.Name))
{
mapData.Column( c=> c.GetType().GetProperty(p.Name).Name,cm => cm.WithName(p.Name.ToLower()));
}
}
return mapData;
}
AutoMap<RxHsLocationCityTbl>(new List<string>());
这是此列函数的内部
/// <summary>Defines options for mapping the column specified.</summary>
public Map<TPoco> Column<TProp>(
Expression<Func<TPoco,TProp>> column,Action<ColumnMap> columnConfig)
{
if (column == null)
throw new ArgumentNullException(nameof (column));
if (columnConfig == null)
throw new ArgumentNullException(nameof (columnConfig));
MemberInfo propertyOrField = this.GetPropertyOrField<TProp>(column);
ColumnMap columnMap;
if (!this._columnMaps.TryGetValue(propertyOrField.Name,out columnMap))
{
Type memberInfoType = propertyOrField as PropertyInfo != (PropertyInfo) null ? ((PropertyInfo) propertyOrField).PropertyType : ((FieldInfo) propertyOrField).FieldType;
columnMap = new ColumnMap(propertyOrField,memberInfoType,true);
this._columnMaps[propertyOrField.Name] = columnMap;
}
columnConfig(columnMap);
return this;
}
我不明白。我在做什么错了?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)