这肯定是一个特殊的问题,在发现没有人有同样的问题之后,我希望我能找到真正知道问题所在的人。
我有,说:
public class ViewModel
{
public string TestString { get; set; }
public ChildObject Child { get; set; }
public List<Children> Children { get; set; }
}
现在,当我在控制器中映射我的对象时......即
TestObject testObject = Repository.GetObject() // This is my Entity Framework object (with dynamic proxies attached to it)
Mapper.Map(ViewModel, testObject);
而且,我的映射定义为:
Mapper.CreateMap<ViewModel, TestObjectType>();
Mapper.CreateMap<ViewModelChildView, TestObjectChildType>();
一切都很好,所以我的 ViewModel 设置正确,我的表单。问题呢?这是有趣的部分。
ChildObject
就像我的原始对象一样,是一个 DynamicProxy(实体框架)。但是List<Children>
,设置为普通列表(即使原始列表是 的 DynamicProxy List<Children>
)。
反过来,这意味着实体框架无法访问此列表,因为它没有正确绑定到上下文。我整天都在努力寻找没有运气的解决方法。有什么想法吗?
编辑
这些是我的实际对象绑定:
Mapper.CreateMap<CompanyViewModel, Company>();
Mapper.CreateMap<CompanyCategoryViewModel, CompanyCategory>(); // I've ever tried removing this line.
Mapper.CreateMap<List<CompanyCategoryViewModel>, List<CompanyCategory>>();
控制器:
Mapper.Map(companyViewModel, company);
公司对象 = 动态代理 CompanyCategories 列表子对象(公司的)、地图,但仍然不是动态代理。