Сохранение таблицы/столбца обновляет сущность c#

#c# #entity

Вопрос:

Я пытаюсь найти более аккуратный способ сохранения обновлений таблиц/столбцов. У меня есть объект, представляющий текущую запись таблицы заказов, и объект со всеми обновленными значениями. Я хочу сравнить каждую переменную с соответствующими именами в каждом объекте и сохранить обновление в базе данных, если оно отличается. В настоящее время я делаю это (я знаю, что это плохо написано) следующим образом:

 if (currentOrder.Comment != editedOrder.Comment)
{
    createOrderUpdateRecord("Comment", currentOrder.Comment.ToString(), editedOrder.Comment.ToString(), OrderID);
    currentOrder.Comment = editedOrder.Comment ;
    anyChangesMade = true;
}
if (currentOrder.CustomerName != editedOrder.CustomerName )
{
    createOrderUpdateRecord("CustomerName ", currentOrder.CustomerName .ToString(), editedOrder.CustomerName .ToString(), OrderID);
    currentOrder.CustomerName = editedOrder.CustomerName ;
    anyChangesMade = true;
}
 

а затем в методе createOrderUpdateRecord я сохраняю информацию в таблице изменений.

Комментарии:

1. В случае, если кого-то заинтересует, я в конечном итоге использовал библиотеку контекста БД с поддержкой трекера вместе с entity framework для отслеживания изменений в полях таблицы, что отлично справилось с этой задачей

Ответ №1:

В случае, если кого-то заинтересует, я в конечном итоге использовал библиотеку контекста БД с поддержкой трекера вместе с entity framework для отслеживания изменений в полях таблицы, что отлично справилось с этой задачей

Ответ №2:

В случае, если вы используете обычный .NET Winforms DataGridView при обращении к обновлениям таблицы/столбца:

Существует событие под названием «CellValueChanged». Также есть «CellEndEdit». Если вы подписываетесь на любой из них, вы можете установить для переменной «изменено»значение true, чтобы отслеживать, необходимо ли обновлять значение в базе данных.