• Entify Framework 4.1[问题集] 一个实体的双向依赖引起的错误


    昨天更新系统后,上午物流的同事反馈打印出库单时出现这个异常错误。Collection was modified; enumeration operation may not execute.
    [InvalidOperationException: Collection was modified; enumeration operation may not execute.]
       System.Collections.Generic.Enumerator.MoveNextRare() +12647947
       System.Data.Objects.ObjectStateManager.PerformAdd(IList`1 entries) +1204
       System.Data.Objects.ObjectStateManager.DetectChanges() +244
       System.Data.Entity.Internal.Linq.InternalSet`1.Find(Object[] keyValues) +53

    我们的系统是数据库访问采用的是EF4.1框架,对数据库的常用访问接口做了简单的封装,通过Find来获取单条信息。同样的代码在此系统的很多地方使用都没有问题,在开发环境下运行这个功能也没有错误提示,只有在生产环境下才会出现。

    开始排查这部分代码和其他使用这个方法的代码有什么不同,对比后也没有发现差异。突然间想起之前听同事说实体双向引用时,在序列化时会报异常信息,拿着部分代码是不是因为双向引用引起的呢?看了同事的实体代码,确实存在着ClassA中有个属性是ClassB,ClassB中有一个属性是ClassA。移除了ClassB中的ClassA和配置的外键关系,更新到生产环境后问题得以解决。

    后来又Google了这个问题,发现在http://stackoverflow.com/questions/7536459/ef-4-1-and-collection-was-modified-enumeration-operation-may-not-execute-exc 有详细的解答。

  • 相关阅读:
    HDU 3833 YY's new problem ()
    从文件读入16进制数转化为10进制数再输出到文件中
    UESTC 1215 (思维题 旋转)
    HDU2067卡特兰数
    HDU2050离散数学折线分割平面
    cshell学习
    C++学习1
    QT学习1
    QT Creator常用快捷键
    Ubuntu14.04安装QT5.5
  • 原文地址:https://www.cnblogs.com/TransTown/p/2337873.html
Copyright © 2020-2023  润新知