#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, чтобы отслеживать, необходимо ли обновлять значение в базе данных.