I want to create a only ReferencesMap class.
CompositeMap
hold references to AMap
and BMap
.
When calling
csv.Configuration.RegisterClassMap<CompositeMap>();
I get an error:
No members were found in expression '{expression}'.
My code:
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);
}
}
Any idea why? How can I do this?
The recommended way to map down an object graph is to do all the mapping in the top node.
public sealed class CompositeMap : ClassMap<Composite>
{
public CompositeMap()
{
Map(m => m.a.ID);
Map(m => m.b.Name);
}
}
If you have a specific reason you need to use References
, let me know and I can update the answer.