在下面的示例中,获取类型NewProduct或OldProduct时,ID属性会正确映射,但Orders集合不会。
public abstract class ProductBase
{
//Get's mapped
public int? ID
{
get;
set;
}
//does not get mapped
public virtual IList<Order> Orders
{
get;
set;
}
}
public class NewProduct : ProductBase
{
...
}
public class OldProduct : ProductBase
{
...
}
当我将该集合添加到NewProduct&amp; OldProduct,一切正常:
public class NewProduct : ProductBase
{
public override IList<Order> Orders
{
get;
set;
}
}
public class OldProduct : ProductBase
{
public override IList<Order> Orders
{
get;
set;
}
}
看起来像所有属性,但是集合中的属性从基类中正确映射。现在,当我通过显式覆盖设置映射时,它可以工作。
.Override<NewProduct>(x => x.HasMany<Order>(y => y.Orders))
.Override<OldProduct>(x => x.HasMany<Order>(y => y.Orders))
因此,我希望自动映射无需在NewProduct&amp;上定义该集合。 OldProduct而不必进行覆盖。
有什么想法吗?