http://geekswithblogs.net/michelotti/archive/2007/12/17/117791.aspx
Я использую ASP.NET с C # и пытаюсь использовать linq to sql для обновления контекста данных, как показано в блоге, указанном выше. Я создал поле метки времени в таблице, как указано, и использую следующий метод:
private void updateRecord(TableName updatedRecord)
{
context db = new context();
db.TableName.Attach(updatedRecord,true);
db.SubmitChanges();
}
Мой вопрос заключается в том, должны ли вы назначать поле timeStamp для чего-либо в вашем updatedRecord, прежде чем пытаться вызвать метод Attach для своего контекста данных?
Когда я запускаю этот код, я получаю следующее исключение: System.Data.Linq.ChangeConflictException: Row not found or changed.
Я обновляю все поля, включая первичный ключ записи, которую я обновляю, перед передачей объекта этому методу обновления. Во время отладки атрибут TimeStamp объекта отображается как ноль. Я не уверен, должно ли это быть так или нет.
В каждой книге и ресурсе, которые у меня есть, говорится, что это способ сделать это, но ни одна из них не вдавалась в подробности об этом атрибуте TimeStamp.
Я знаю, что это быстро и легко, поэтому, если кто-нибудь знает, пожалуйста, дайте мне знать.