EF CF Linq-to-Sql,保存附加的子实体? (.NET 4)

时间:2012-11-12 17:13:44

标签: linq entity-framework linq-to-sql ef-code-first

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

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保存到数据库中呢?现在它仍然只会更新字段。

1 个答案:

答案 0 :(得分:0)

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

var entryLog = cibtext,Entry(logEntry); 
entryLog.State = EntityState.Added;