EF Code First如何在关闭动态代理的情况下加载对象层次结构

时间:2011-06-02 13:34:09

标签: wcf web-services entity-framework serialization c#-4.0

我需要序列化一个对象,将其作为webservice中的参数传递。我按照文章的建议:  DataContractSerializer Error using Entity Framework 4.0 with WCF 4.0

此对象退出复杂,因为它类似于分层数据结构。

现在我遇到了问题,因为相关对象(一对多对象)没有加载,它们的值为空。

如果我使用动态代理,这不是问题,但动态代理对象不会序列化以在Web服务中使用。

我试图在dbContext中打开/关闭延迟加载,但它没有任何区别。

任何人都知道如何解决这个问题,甚至可能加载一个代理对象并将其复制到“真正的”对象?

由于

1 个答案:

答案 0 :(得分:0)

如果这是你真正必须拥有的关系,最好的办法是使用普通的动态代理对象加载数据,并使用AutoMapper(或手动转换)之类的东西将其转换为您想要通过服务发送的任何内容。然后,您可以确保加载和填充要发送的内容。

与手动加载/转换相比,试图告诉EF和WCF知道如何自动为复杂的分层对象做好准备是不值得的。