【问题标题】:Log by Error: The relationship could not be changed because one or more of the foreign-key properties is non-nullable错误记录:无法更改关系,因为一个或多个外键属性不可为空
【发布时间】:2021-06-21 15:14:02
【问题描述】:

为什么 EF6 不能通过这个错误给我更多信息?

我尝试使用 db.Database.Log 但这没有给我任何东西。我只想知道是哪个领域导致了这个问题,因为我没有看到。

谢谢

【问题讨论】:

    标签: entity-framework logging


    【解决方案1】:

    我从this问题获得的更多信息:

    #if DEBUG
    
    db.ChangeTracker.DetectChanges(); // Force EF to match associations.
    var objectContext = ((IObjectContextAdapter)db).ObjectContext;
    var objectStateManager = objectContext.ObjectStateManager;
    var fieldInfo = objectStateManager.GetType().GetField("_entriesWithConceptualNulls", BindingFlags.Instance | BindingFlags.NonPublic);
    var conceptualNulls = fieldInfo.GetValue(objectStateManager);
    
    #endif
    

    conceptualNulls 是一个 HashSet,EntityEntry 是一个内部类,因此您只能在调试器中检查集合以了解冲突实体。仅用于诊断目的!!! (感谢Gert Arnold

    【讨论】:

      猜你喜欢
      • 2015-12-16
      • 2013-10-19
      • 2014-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多