我有一个带有服务层的标准存储库模式,我需要映射一个名为Game的POCO对象:
public class Game
{
public int Id { get; set; }
public int GameTypeId { get; set; }
public int GameStateId { get; set; }
public int? PreviousGameId { get; set; }
public DateTime EndOn { get; set; }
public DateTime StartOn { get; set; }
}
将其映射到具有名为GameId的成员的视图模型。所以 Id>游戏ID 即可。
然而,当我创建我的映射约定时,对象就会看到附加到它末尾的GUID。
如何在没有从动态代理映射到POCO的情况下正确映射这些POCO对象的值注入器?或者这是不可能的?
答案 0 :(得分:0)
我最终关闭了代理生成和延迟加载,现在我只是eagar加载所有内容
答案 1 :(得分:0)
今天,Entity Framework Dynamic Proxies也遇到了同样的问题。这是在不禁用代理的情况下使ValueInjecter正常工作的方法。
我已使用Mapper.AddMap基于非代理类创建自定义地图。在运行时,我对Mapper.Map的调用未与我的地图匹配,因为它收到了代理类。
var customerInput = Mapper.Map<CustomerInput>(customer); //runs default map
当我同时调用具有输入和输出类型的Mapper.Map时,它起作用了!
var customerInput = Mapper.Map<Customer, CustomerInput>(customer); //runs custom map
答案 2 :(得分:-1)
在映射之前,尝试将代理显式转换为基础POCO'S类型。