У меня есть основной проект на С#.
Я работаю над базой данных, где в некоторых таблицах есть столбцы "user_mod" и "date_mod" для знака, кто и когда сделал несколько модов и то же самое с "data_new" и "user_new".
Мой вопрос: есть ли способ централизовать это и вставить эти данные автоматически, где я создаю экземпляр dbContext
?
Если нет, я буду использовать инструмент аудита. Я видел некоторые из них, но есть проблема: все это требует некоторого кода в моей модели. Но я не хочу писать в своей модели, потому что, если мне нужно ее изменить, я потеряю моды. Возможно ли использовать контрольный журнал для EF6 без записи в файле модели? Как?
EDIT:
Моя попытка переопределить saveChanges.
public partial class PieEntities : DbContext
{
public override int SaveChanges(System.Data.Objects.SaveOptions options)
{
var timestamp = DateTime.Now;
EntityState es = EntityState.Added;
ObjectStateManager o = new ObjectStateManager();
foreach (ObjectStateEntry entry in o.GetObjectStateEntries(EntityState.Added )) {
if (entry.Entity.GetType() == typeof(TabImpianti)) {
TabImpianti impianto = entry.Entity as TabImpianti;
impianto.DATA_INS = timestamp;
impianto.DATA_MOD = timestamp;
string u = mdlImpostazioni.p.UserName;
impianto.USER_INS = u;
impianto.USER_MOD = u;
}
}
return base.SaveChanges(options);
}
}
ОБНОВЛЕНИЕ: я подвел итоги здесь.