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

发布于 2024-10-18 14:25:01 字数 367 浏览 1 评论 0原文

我正在尝试 EF CodeFirst CTP 5,并将其与 WCF 数据服务一起使用。我收到一个错误,内部服务器错误。类型“System.Data.Entity.DynamicProxies.Person_C321D7A37002A1B42C3CBAECC27983D77F6B7FCC3F837175B2CBB55CCA66AF55”不是复杂类型或实体类型。

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

谢谢。

I'm trying out EF CodeFirst CTP 5, and using it with WCF Data Services. I'm getting an error that Internal Server Error. The type 'System.Data.Entity.DynamicProxies.Person_C321D7A37002A1B42C3CBAECC27983D77F6B7FCC3F837175B2CBB55CCA66AF55' is not a complex type or an entity type.

If I use an edmx-generated Person off the db created by CF, I have no issue. In reading up, it seems that the lazy loading is screwing things up, and previous EF versions have let me turn off proxy generation with an option flag that's not present in the DbContext. There is a way to set up LazyLoading to false, but that doesn't apparently turn off proxy generation.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

神爱温柔 2024-10-25 14:25:01

以下是您可以在 EF 代码优先 CTP5 中执行的操作:

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

或者,这是 VS 2010 RTM 中的 WCF 数据服务中的错误。您可以使用具有 此问题已修复。

希望这有帮助。
谢谢
普拉蒂克

Here's what you can do in EF code first CTP5:

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

Alternatively, this is a bug in WCF data services in VS 2010 RTM. You can used the CTP1 of WCF Data Services that has this issue fixed.

Hope this helps.
Thanks
Pratik

各自安好 2024-10-25 14:25:01

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

谢谢
普拉蒂克

In CTP1, the binaries have been renamed to Microsoft.Data.Services.*.dll. Did you change the references to the new assemblies? I am pretty sure that this issue was fixed in CTP1. So just wanted to make sure it worked for you.

Thanks
Pratik

单调的奢华 2024-10-25 14:25:01

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

Configuration.ProxyCreation = false

禁用动态代理创建

If you are using the new DbContext class, then you can make use of

Configuration.ProxyCreation = false

To disable the dynamic proxy creation

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文