(注意:我看到this,但这不是我想要做的。)
我有一个要求,我需要做以下事情:
Foo
实体FooAudit
实体,并使用文本描述中新Foo
实体的新标识值。 FooAudit
与Foo无关,因此必须手动从Foo
的创建中提取身份。EntityState
记录Foo
(Added
)。我是否使用其他类似的上下文?
using (var fooContext = GetContext()) { fooContext.Foos.AddObject(new Foo()); using (var transaction = new TransactionScope()) { // Save Foo, while maintaining the Changed EntityState until AcceptAllChanges fooContext.SaveChanges(SaveOptions.DetectChangesBeforeSave); using (var auditContext = GetContext()) { // Save FooAudit, maintaining the Changed EntityState until AcceptAllChanges auditContext.FooAudits.AddObject(new FooAudit()); auditContext.SaveChanges(SaveOptions.DetectChangesBeforeSave); transaction.Complete(); fooContext.AcceptAllChanges(); auditContext.AcceptAllChanges(); } } }
或者有更好的方法吗?
答案 0 :(得分:0)
我通过使用另一个上下文来解决这个问题。