如何解决.Name指的是非类型的属性或字段
这是映射功能
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 举报,一经查实,本站将立刻删除。