c# - 在 csvhelper 中仅注册 ReferencesMap 会导致错误
问题描述
我想创建一个唯一的 ReferencesMap 类。
CompositeMap
持有对AMap
和的引用BMap
。
打电话时
csv.Configuration.RegisterClassMap<CompositeMap>();
我收到一个错误:
No members were found in expression '{expression}'.
我的代码:
public class A
{
public int ID { get; set; }
}
public class B
{
public string Name { get; set; }
}
public sealed class AMap : ClassMap<A>
{
public AMap()
{
Map(m => m.ID);
}
}
public sealed class BMap : ClassMap<B>
{
public BMap()
{
Map(m => m.Name);
}
}
public class Composite
{
public A a { get; set; }
public B b { get; set; }
}
public sealed class CompositeMap : ClassMap<Composite>
{
public CompositeMap()
{
References<AMap>(m => m.a);
References<BMap>(m => m.b);
}
}
知道为什么吗?我怎样才能做到这一点?
解决方案
映射对象图的推荐方法是在顶部节点中进行所有映射。
public sealed class CompositeMap : ClassMap<Composite>
{
public CompositeMap()
{
Map(m => m.a.ID);
Map(m => m.b.Name);
}
}
如果您有需要使用的特定原因References
,请告诉我,我可以更新答案。
推荐阅读
- javascript - 我想在填写所有多步表单后显示预览按钮
- docker - 列出使用 docker 本地卷的 Kubernetes 容器
- python - numba:使用字符串输入/返回向量化函数
- angular - Angular将html转换为角度问题
- python - 将一个目录下所有多种编码的文本文件转换成utf-8编码的文本文件
- arrays - 如何在 C 编程中将一个数组复制到另一个数组
- python - 创建一天中时间的直方图
- node.js - 如何从 express.js 迁移到 nest.js,逐个路由
- c - copy_to_user() 不断打印消息
- perl - 如何在 perl 函数中发送和接收字符串、数组和哈希