zoukankan      html  css  js  c++  java
  • 序列化类型 System.Data.Entity.DynamicProxies 的对象时检测到循环引用

    序列化类型 System.Data.Entity.DynamicProxies 的对象时检测到循环引用

    详细错误内容为:

    不应为数据协定名称为BlogArticle_8F5767B5CA34AC0BBFE8F59DB428937035A9A77CC2917A318A2808A379392602:

    http://schemas.datacontract.org/2004/07/System.Data.Entity.DynamicProxies”的类型“System.Data.Entity.DynamicProxies.BlogArticle_8F5767B5CA34AC0BBFE8F59DB428937035A9A77CC2917A318A2808A379392602”。请考虑使用 DataContractResolver,或将任何未知类型以静态方式添加到已知类型的列表。例如,可以使用 KnownTypeAttribute 特性,或者将未知类型添加到传递给 DataContractSerializer 的已知类型列表。

    出现该错误的原因:

    EF的上下文默认采用创建代理的方式返回实体集合,如果不需要,可以这样:

    context.ContextOptions.ProxyCreationEnabled = false;

    即可关闭。

    另外对EF上下文的几个重要设置选项作个说明:

    LazyLoadingEnabled

    启用延迟加载, true 启用,false 不启用;

    ProxyCreationEnabled

    创建代理, true 创建,false 不创建;

    UseLegacyPreserveChangesBehavior

    确定是否使用旧的行为, true 使用,false 不使用;

  • 相关阅读:
    List集合
    类加载机制
    代码优化
    JVM字节码
    Tomcat优化之Apache Jmeter压力测试工具
    Tomcat优化
    JVM垃圾收集器
    lambda表达式
    java 内部类
    java多线程3种方式
  • 原文地址:https://www.cnblogs.com/taven/p/1845871.html
Copyright © 2011-2022 走看看