(Примечание: я вижу это , но это не совсем то, что я хочу сделать.)
У меня есть требование, где мне нужно сделать следующее:
- Создание новой
Foo
сущности - После создания сущности 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();
}
}
}
Или есть лучший способ?