это мой третий день, и это сводит меня с ума.
Необходимость аудита всякий раз, когда я делаю, вставка, явно привязанная к SaveChanges, мне не подходит, так как мне нужен новый GeneratedID, который вы получаете при добавленииновая запись
Я переопределил SaveChanges, и теперь я могу получить вновь добавленные записи с первичным ключом.
Моя проблема заключается в том, что у меня теперь есть newLog для вставки, и мне нужно вызватьСнова SaveChanges.
Либо я попадаю в бесконечный цикл, либо вставляю запись дважды.
Как вы проверяете вставку, если вам нужен первичный ключ вновь вставленного объекта, например (CustomerId)
public override int SaveChanges(SaveOptions options)
{
int changes = base.SaveChanges(SaveOptions.DetectChangesBeforeSave);
IEnumerable<ObjectStateEntry> entries = Context.ObjectStateManager.GetObjectStateEntries(EntityState.Added);
foreach (ObjectStateEntry entry in entries)
{
var auditLog=CreateAuditLog(Entry);
}
//Because I have saved I now got the new Id. I now need to save the newly created log and therefore
//I call save again but now this will save again all the previous stuff too or get in a infinite loop
//Is there a way I could just save the newly added stuff what is the workaround?
base.SaveChanges();
return changes;
}
Как можно провести аудит при вставке?любой пример?