尝试序列化Entity Framework对象时出现XML序列化错误

ajm*_*jma 5 entity-framework xml-serialization

我有通过实体框架获得的实体.我正在使用Code-First,所以他们是POCO.当我尝试使用XmlSerializer对它们进行XML序列化时,我收到以下错误:

不期望类型System.Data.Entity.DynamicProxies.Song_C59F4614EED1B7373D79AAB4E7263036C9CF6543274A9D62A9D8494FB01F2127.使用XmlInclude或SoapInclude属性指定静态未知的类型.

任何人都有任何关于如何解决这个问题的想法(没有创建一个全新的对象)?

Shi*_*mar 6

只是说POCO并没有真正帮助(特别是在这种情况下,因为它看起来像你正在使用代理).代理在许多情况下都派上用场,但由于序列化的实际对象实际上不是您的对象而是代理的实例,因此使序列化变得更加困难.

这篇博文应该给你答案. http://blogs.msdn.com/b/adonet/archive/2010/01/05/poco-proxies-part-2-serializing-poco-proxies.aspx


Chr*_*ons 6

对不起,我知道我迟到了(已经晚了几年)但是如果你不需要代理对象进行延迟加载,你可以这样做:

Configuration.ProxyCreationEnabled = false;
Run Code Online (Sandbox Code Playgroud)

在你的上下文中.对我来说就像一个魅力.Shiv Kumar实际上可以更好地了解原因,但这至少会让你重新开始工作(再次假设您不需要代理).