我有一个项目,其中有三个层次的嵌套。大致如下:
public class Assignment
{
public Element Element { get; set; }
}
public class Element
{
public Subject Subject { get; set; }
}
public class Subject
{
public int? Id { get; set; }
public string Subject_Title { get; set; }
}
每个类中都有许多其他属性。数据库遵循相同的结构。现在我想将数据库中的assignment
映射到视图模型。
我使用automapper
编写的映射第一次可以工作,但之后就不行了。因此,在后续运行中,Subject
的值为空,而Element
的值在所有运行中都是正常的。问题只出在主题上。
有人能指点我正确的方向并告诉我我做错了什么吗?
Mapper.CreateMap<db_Subject, Subject>();
Mapper.CreateMap<db_element, Element>()
.ForMember(dest => dest.Subject, opt => opt.MapFrom(src => src.db_Subject));
Mapper.CreateMap<db_assignment, Assignment>()
.ForMember(dest => dest.Element, opt => opt.MapFrom(src => src.db_element));
简单来说,db_subject
是 db_element
中的外键,同样地,db_element
是 db_assignment
中的外键。在视图模型中,某些情况下列名可能会有所不同。