WCF +实体框架CodeFirst = DynamicProxies异常?

时间:2011-02-23 20:26:57

标签: wcf-data-services ef-code-first

我正在尝试EF CodeFirst CTP 5,并将其与WCF数据服务一起使用。我收到Internal Server Error. The type 'System.Data.Entity.DynamicProxies.Person_C321D7A37002A1B42C3CBAECC27983D77F6B7FCC3F837175B2CBB55CCA66AF55' is not a complex type or an entity type.

的错误

如果我在CF创建的数据库中使用edmx生成的Person,我没有问题。在阅读中,似乎延迟加载会使事情搞砸,而以前的EF版本让我通过DbContext中不存在的选项标志来关闭代理生成。有一种方法可以将LazyLoading设置为false,但这显然不会关闭代理生成。

感谢。

3 个答案:

答案 0 :(得分:4)

以下是您在EF代码中首先使用CTP5执行的操作:

((IObjectContextAdapter)context).ObjectContext.ContextOptions.ProxyCreationEnabled = false;

或者,这是VS 2010 RTM中WCF数据服务中的错误。您可以使用已修复this issue的WCF数据服务的CTP1。

希望这有帮助。
由于
PRATIK

答案 1 :(得分:0)

在CTP1中,二进制文件已重命名为Microsoft.Data.Services。*。dll。您是否更改了对新程序集的引用?我很确定这个问题已在CTP1中修复。所以只是想确保它适合你。

由于 PRATIK

答案 2 :(得分:0)

如果您正在使用新的DbContext类,那么您可以使用

Configuration.ProxyCreation = false

禁用动态代理创建