На данный момент я ищу способ найти старые значения сущности в [context] .SubmitChanges().Linq to SQL - Audit Trail (найти старые значения в SubmitChanges)
Насколько я могу судить, появляются только новые значения. Нужно ли мне делать запрос к базе данных, чтобы получить старые значения объекта?
Решение по GertArnold:
public override void SubmitChanges(System.Data.Linq.ConflictMode failureMode)
{
// Get the changeset
ChangeSet changeSet = this.GetChangeSet();
// Put the updated objects into a IEnumerable
IEnumerable<object> updatedEntities = changeSet.Updates;
foreach (var entity in updatedEntities.Where(entity => AuditTypes.Contains(entity.GetType())))
{
var old = this.GetTable(entity.GetType()).GetModifiedMembers(entity);
// Do something with the old values
}
// Save the changes
base.SubmitChanges(failureMode);
}
Возможный дубликат [Linq to SQL: получение старых значений измененных строк] (http://stackoverflow.com/questions/1852533/linq-to-sql-getting-old-values-of-changes-rows) –
@WouterdeKort Я видел сообщение действительно, но в нем не указано, как получить кеш. Также, когда я просматриваю свои объекты SubmitChanges, я вижу новые значения, даже не вызывая обновление. – Julian