У меня есть простая процедура, которая заполняет запись в таблице. У меня есть поля, которые я хочу обновить, только если произошло фактическое изменение. Функция может быть вызвана, даже если пользователь ничего не изменил. Есть ли простой способ узнать, произошли ли изменения? Вот функция:
Sub Edit(ByVal key as Integer, ByVal myval1 As Integer?, ByVal myval2 As Integer?)
Dim db As New MyDatabaseDataContext
Dim form = (From x In db.MyTables Where x.id = key).SingleOrDefault
form.field1 = myval1
form.field2 = myval2
If [???] Then
form.mod_date = Now
End If
db.SubmitChanges()
End Function
Это немного упрощено - я бы предпочел не проверять каждое отношение между field1 и myval1, field2 и myval2 и т. Д., Потому что может быть много полей, и вы должны принимать во внимание Ничто для каждого из них, бла-бла л. Есть ли способ просто спросить «форму», если назначения действительно что-то изменили? Я знаю, что за кулисами обновление базы данных не будет производиться, если ничего не изменилось, но выставлено ли это мне до того, как я передам изменения?