自动映射器不映射Entity Framework 4.1上下文中新添加的实体

时间:2012-01-11 15:22:29

标签: entity-framework-4 automapper

我懒得加载我的实体,当我初始调用拉一个实体列表时,我看到的是System.Data.Entity.DynamicProxies ....类型。这很好,我的实体映射到我的DTO就好了。我遇到的问题是,当我向我的上下文添加一个新项目时,它将被从上下文而不是数据库中提取出来。所以,我看到列表被System.Data.Entity.DynamicProxies类型拉回来,而我的新项目taht是实际的对象类型。

所以,例如我可能有这样的列表:

System.Data.Entity.DynamicProxies.Contact...
System.Data.Entity.DynamicProxies.Contact...
System.Data.Entity.DynamicProxies.Contact...
MyNameSpace.Contact

我创建了一个自定义类型转换器,并注意到DynamicProxy类型具有源值,但MyNameSpace.Contact没有源值。因此,它没有映射到我的类型转换器中。

1 个答案:

答案 0 :(得分:0)

在不使用构造函数的情况下创建实体时,可以在ObjectSet / DbSet中调用CreateObject/Create方法。

var newContact = context.Contacts.Create();
context.Contacts.Add(newContact);

返回的对象是支持延迟加载的代理。