在我的业务层中,有以下对象
class ParentClass
{
// Parent class properties
ChildClass PrimaryChild { get; set; }
ChildClass SecondaryClass { get; set; }
}
class ChildClass
{
//Child class properties
}
业务规则规定将只有一个主要和次要孩子
在DAL中,尽管将其设置为标准的一对多关系很有意义
class ParentEntity
{
// Parent properties
IEnumerable<ChildEntity> Children { get; set; }
}
class ChildEntity
{
// Child properties
bool IsPrimary { get; set; }
int ParentId { get; set; }
ParentEntity Parent { get; set; }
}
这对数据库都很好,并且在业务规则确实发生更改的情况下提供了将来的灵活性。
这一切都很好,但是我发现自己在业务层中手动映射PrimaryChild
和SecondaryChild
属性,而其他所有内容都由自动映射器映射。
是否有一种方法可以指示自动映射器进行这种映射?我没有运气来找到遵循此结构的示例。
据我所知,这不能隐式完成。
即使存在隐式执行此功能的能力,它也需要您明确指出:
IsPrimary
标志如何根据其是哪个属性而设置一旦您已经准备好编写这些自定义的逻辑点,基本上就已经重写了整个手动映射,并且除了执行手动编写的步骤之外,框架实际上不会做很多其他事情。
会有很多代码并没有真正增加库功能的价值。