我需要序列化一个对象,将其作为webservice中的参数传递。我按照文章的建议: DataContractSerializer Error using Entity Framework 4.0 with WCF 4.0
此对象退出复杂,因为它类似于分层数据结构。
现在我遇到了问题,因为相关对象(一对多对象)没有加载,它们的值为空。
如果我使用动态代理,这不是问题,但动态代理对象不会序列化以在Web服务中使用。
我试图在dbContext中打开/关闭延迟加载,但它没有任何区别。
任何人都知道如何解决这个问题,甚至可能加载一个代理对象并将其复制到“真正的”对象?
由于
答案 0 :(得分:0)
如果这是你真正必须拥有的关系,最好的办法是使用普通的动态代理对象加载数据,并使用AutoMapper(或手动转换)之类的东西将其转换为您想要通过服务发送的任何内容。然后,您可以确保加载和填充要发送的内容。
与手动加载/转换相比,试图告诉EF和WCF知道如何自动为复杂的分层对象做好准备是不值得的。