C# 使用EF4.0创建审核记录
我试图创建一个审计记录,用于历史目的。我从下面的文章中找到了这段代码C# 使用EF4.0创建审核记录,c#,winforms,entity-framework,C#,Winforms,Entity Framework,我试图创建一个审计记录,用于历史目的。我从下面的文章中找到了这段代码 List<sysaudit> auditTrailList = new List<sysaudit>(); IEnumerable<ObjectStateEntry> changes = ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Deleted | EntityS
List<sysaudit> auditTrailList = new List<sysaudit>();
IEnumerable<ObjectStateEntry> changes = ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Deleted | EntityState.Modified);
foreach (ObjectStateEntry stateEntryEntity in changes)
{
if (!stateEntryEntity.IsRelationship &&
stateEntryEntity.Entity != null &&
!(stateEntryEntity.Entity is sysaudit))
{//is a normal entry, not a relationship
sysaudit audit = pamsContext.AuditTrailFactory(stateEntryEntity, "");
auditTrailList.Add(audit);
}
}
if (auditTrailList.Count > 0)
{
foreach (var audit in auditTrailList)
{//add all audits
this.AddToDBAudit(audit);
}
}
这就是它抱怨的那条线
IEnumerable<ObjectStateEntry> changes = ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Deleted | EntityState.Modified);
IEnumerable changes=ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Deleted | EntityState.Modified);
该行上的EntityState应参考System.Data.EntityState枚举。您能否将鼠标悬停在提及的EntityState上以验证这一点
考虑到您提到的编译错误,我怀疑您的类还包含名为EntityState的非静态字段或属性
如果是这样,您将需要更改相关行以完全限定名称空间,即:
IEnumerable<ObjectStateEntry> changes = ObjectStateManager.GetObjectStateEntries(System.Data.EntityState.Added | System.Data.EntityState.Deleted | System.Data.EntityState.Modified);
IEnumerable changes=ObjectStateManager.GetObjectStateEntries(System.Data.EntityState.Added | System.Data.EntityState.Deleted | System.Data.EntityState.Modified);
pamsContext对象是否已初始化?
IEnumerable<ObjectStateEntry> changes = ObjectStateManager.GetObjectStateEntries(System.Data.EntityState.Added | System.Data.EntityState.Deleted | System.Data.EntityState.Modified);