1

我得到这个代码来只更新对象的特定字段。

var myEntity = new DBEntity { Id = 1, Field1 = true, Field2 = "Test" };
context.DBEntities.Attach(myEntity);
var entry = context.Entry(myEntity);
entry.Property(x => x.Field1).IsModified = true;
entry.Property(x => x.Field2).IsModified = true;
context.SaveChanges();

这工作完美。现在我想向我的实体对象添加一个日志条目,每次有人进行更新时,我都想在我的日志中跟踪它。

var myEntity = new DBEntity { Id = 1, Field1 = true, Field2 = "Test" };
var logEntry = new DBEntityLog { LogText = "Update to field1 and field2" };
myEntity.Logs.Add(logEntry);
context.DBEntities.Attach(myEntity);
var entry = context.Entry(myEntity);
entry.Property(x => x.Field1).IsModified = true;
entry.Property(x => x.Field2).IsModified = true;
// Property does not work on collection objects
context.SaveChanges();

现在如何将 logEntry 也保存到数据库中?现在它仍然只会更新字段。

4

1 回答 1

0

通过获取日志条目并将 EntityState 设置为添加解决了问题。

var entryLog = cibtext,Entry(logEntry); 
entryLog.State = EntityState.Added;
于 2012-11-14T15:47:50.153 回答