Я пытаюсь создать Change Tracker, переопределив метод dbcontext SaveChanges ().
Я не могу получить первичный ключ для сущности при добавленном состоянии.
Как мы можем получить добавленное состояние сущности, когдапопробуйте сохранить ChangeLog.
Переопределенный DbContext SaveChanges выглядит следующим образом:
public override int SaveChanges()
{
var adddedEntites = ChangeTracker.Entries().Where(p => p.State == EntityState.Added).ToList();
var now = DateTime.UtcNow;
foreach (var added in adddedEntites)
{
var entityName = added.Entity.GetType().Name;
foreach (var prop in added.CurrentValues.PropertyNames)
{
var currentValue = added.CurrentValues[prop].ToString();
var id = new Guid();
ChangeLog log = new ChangeLog()
{
Id = id,
EntityName = entityName,
PrimaryKeyValue = null// how can I get pkey,
PropertyName = prop,
NewValue = currentValue,
DateChanged = now,
ActionType = "A"
};
ChangeLogs.Add(log);
}
}
return base.SaveChanges()
}
Спасибо.