【发布时间】:2012-12-07 04:45:53
【问题描述】:
最简单的例子,我得到一个集合并尝试通过 Web API 输出它:
// GET api/items
public IEnumerable<Item> Get()
{
return MyContext.Items.ToList();
}
我得到了错误:
对象类型
'System.Data.Objects.ObjectQuery`1[Dcip.Ams.BO.EquipmentWarranty]' 无法转换为类型
'System.Data.Entity.DbSet`1[Dcip.Ams.BO.EquipmentWarranty]'
这是一个与新代理有关的非常常见的错误,我知道我可以通过设置来修复它:
MyContext.Configuration.ProxyCreationEnabled = false;
但这违背了我正在尝试做的很多事情的目的。有没有更好的办法?
【问题讨论】:
-
关闭代理是如何破坏序列化对象的?
-
它是一个代理对象,而不是实际的 POCO
-
全局关闭代理意味着您无法使用延迟加载的导航属性。我同意如果您需要导航属性,这不是一个合适的解决方案。仍在为这个问题寻找答案。
标签: entity-framework entity-framework-4 asp.net-web-api