我懒得加载我的实体,当我初始调用拉一个实体列表时,我看到的是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没有源值。因此,它没有映射到我的类型转换器中。
答案 0 :(得分:0)
在不使用构造函数的情况下创建实体时,可以在ObjectSet / DbSet中调用CreateObject/Create
方法。
var newContact = context.Contacts.Create();
context.Contacts.Add(newContact);
返回的对象是支持延迟加载的代理。