Моя цель - добавить код для автоматического отслеживания сущностей в файле DbContext при вызове SaveChanges.
Я создал интерфейс с именем ITrackable with (CreatedBy, CreatedDate, updatedBy, updatedDate).Любая из моих сущностей, которые нужно отслеживать, реализует это.
В моем DbContext я пытаюсь сделать что-то вроде следующего:
public override int SaveChanges()
{
var entries = ChangeTracker.Entries();
foreach (var entry in entries)
{
if (entry.Entity is ITrackable trackable)
{
var now = DateTime.UtcNow;
var user = GetCurrentUser();
switch (entry.State)
{
case EntityState.Modified:
trackable.UpdatedDate= now;
trackable.UpdatedBy= user;
break;
case EntityState.Added:
trackable.CreatedDate = now;
trackable.CreatedBy = user;
trackable.UpdatedDate= now;
trackable.UpdatedBy= user;
break;
}
}
}
// Need to know what to return here...
}
- Я пытаюсь выяснить,это лучший способ сделать это
- Разве DbContext SaveChanges () не возвращает все типы различных целых чисел в зависимости от ситуации.Я не хочу нести ответственность за все это сейчас.
- Если у кого-то есть какие-либо более эффективные способы сделать это в наши дни, пожалуйста, дайте мне знать.