0

我有一个带有服务层的标准存储库模式,我需要映射一个名为 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 > GameId

但是,当我创建我的映射约定时,该对象将带有一个看起来像附加到它的末尾的 GUID。

如何让值注入器正确映射这些 POCO 对象,而无需从动态代理映射到 POCO .. 还是不可能?

4

3 回答 3

0

我最终关闭了代理生成和延迟加载,现在我只是渴望加载所有内容

于 2012-04-06T15:20:36.433 回答
0

今天在实体框架动态代理中看到了同样的问题。这是在不禁用代理的情况下使 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
于 2018-11-13T19:59:44.997 回答
-1

尝试在映射之前将代理显式转换为底层 POCO 的类型。

于 2012-03-26T11:24:21.803 回答