таким образом я обновляю ВСЕ свойства сущности Pupil.Как я могу обновить только те свойства, которые действительно изменились / испортились ...
Я знаю, что существует своего рода шаблон, добавляющий флаг IsDirty в модель / viewModel, но добавляющий для каждого свойства такой флаг?Затем выполните всю проверку и динамическое построение коллекции SQLiteParameter: не слишком ли много накладных расходов?
Не лучше ли просто обновить ALL?
using (SQLiteTransaction trans = DataAccess.ConnectionManager.BeginTransaction())
{
using (SQLiteCommand com = new SQLiteCommand(DataAccess.ConnectionManager))
{
com.Parameters.Add(new SQLiteParameter("@pupilId", pupil.Id));
com.Parameters.Add(new SQLiteParameter("@firstname", pupil.FirstName));
com.Parameters.Add(new SQLiteParameter("@lastname", pupil.LastName));
com.Parameters.Add(new SQLiteParameter("@gender", pupil.Gender));
com.Parameters.Add(new SQLiteParameter("@street", pupil.Street));
com.Parameters.Add(new SQLiteParameter("@city", pupil.City));
com.Parameters.Add(new SQLiteParameter("@postal", pupil.Postal));
com.Parameters.Add(new SQLiteParameter("@phone", pupil.Phone));
com.Parameters.Add(new SQLiteParameter("@email", pupil.Email));
com.Parameters.Add(new SQLiteParameter("@extrainformation",pupil.ExtraInformation));
com.CommandText = "UPDATE pupil SET firstname = @firstname, lastname = @lastname, gender = @gender, street = @street," + " city = @city, postal = @postal, phone = @phone, email = @email, extrainformation = @extrainformation WHERE pupilId = @pupilId";
com.ExecuteNonQuery();
}
trans.Commit();
}