У меня есть требование добавить общий журнал аудита для каждого объекта, поэтому я переопределил метод SaveChanges()
в классе DbContext
и смог создать журналы.Идентификатор внешнего ключа и описание на SaveChanges() overide - Entity Framework
Моя проблема связана с внешними ключами, мне нужно получить текстовое значение внешнего ключа вместо идентификатора для объектов.
Заранее спасибо
RJ
здесь код
if (dbEntry.State == System.Data.EntityState.Modified)
{
if (!object.Equals(dbEntry.GetDatabaseValues().GetValue<object>(propertyName), dbEntry.CurrentValues.GetValue<object>(propertyName)))
{
var oldvalue = dbEntry.GetDatabaseValues().GetValue<object>(propertyName) != null ? dbEntry.GetDatabaseValues().GetValue<object>(propertyName).ToString() : "";
var newvalue = dbEntry.CurrentValues.GetValue<object>(propertyName) != null ? dbEntry.CurrentValues.GetValue<object>(propertyName).ToString() : "";
Auidlog += displayName + ": Changed from - " + oldvalue + " To - " + newvalue + " ";
}
}
в OldValue/NEWVALUE переменного возврата только внешний ключ ид, мне нужно описание для этого
код до сих пор? Немного больше информации поможет. Непонятно, что вы пытаетесь сделать и что вы не понимаете, как это сделать. –
Итак, вы понимаете, как использовать dbEntry.CurrentValues и dbEntityEntry.OriginalValues.Note GetDbValues восходит к Db.Different к проверке оригинала. Во всяком случае, вы знаете, что изменилось. Так что же это касается внешних ключей? Вы хотите запросить модель EF? –
Какое описание. У вас есть свойствоName. В каком тексте вы ссылаетесь? –