假设我们有Customers
和CustomerCategories
与 nn 的关系 DbContext/ObjectContext。我也想保持AuditLog
表中的关系状态。在常规情况下,我可以通过以下代码达到此目的:
ChangeTracker
通过以下代码获取关系的状态:
foreach (ObjectStateEntry dbEntry in){
objectContext
.ObjectStateManager
.GetObjectStateEntries(~EntityState.Detached)
.Where(o=>o.IsRelationship)
然后通过以下代码找到两个相关实体的键:
(dbEntry.CurrentValues.GetValue(0) as EntityKey).EntityKeyValues[0].Value //for the key of related entity in customers table
(dbEntry.CurrentValues.GetValue(1) as EntityKey).EntityKeyValues[0].Value //for the key of related entity in CustomerCategories table
除非新添加的相关 Customer 或相关 CustomerCategories 导致上述代码返回 null,否则一切正常。所以我找不到相关实体。
反正有没有正确找到相关实体?