带有动态代理对象的ValueInjector

时间:2012-03-25 16:44:37

标签: c# entity-framework poco valueinjecter

我有一个带有服务层的标准存储库模式,我需要映射一个名为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对象的值注入器?或者这是不可能的?

3 个答案:

答案 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类型。