Вопрос короче говоря:
Как итог делает это в MVC.NET?
Вопрос в долгой версии:
Я пытаюсь использовать столбец DateTime в Таблице SQL для отслеживания версии (это сам по себе предложено как решение повторного прикрепления класса данных Linq2Sql будучи passedback editview для таблицы),
Но теперь я получаю 'строку, не найденную или измененное '-исключение. на ctx.submit:
ctx.appointments.Attach(appointment,true);
ctx.SubmitChanges();
где ctx является мой Linq datacontext, назначения моя таблица и назначение, назначение возражает, что я пытаюсь присоединить.. Я имею, устанавливают таблицу назначений, как предложено здесь
Эта проблема была также отмечена читателем предложенного решения. Он предложил это в качестве решения.
Проблема здесь, я не использую веб-формы, я использую MVC.NET. Таким образом, я предполагаю использование
<%= Html.Hidden("LastUpdate", Model.LastUpdate) %>
вносит изменение свойства LastUpdate. Так есть ли способ удостовериться, что я получаю то же (или, по крайней мере, равняйтесь), объект DateTime, когда это пасуется назад в мое действие обновления?
Я использую предложенный gettime (), включают обновление моей таблицы назначений. это, очевидно, хранит sql объект даты и времени. который не мог бы быть точно проанализирован Linq2SQL. Я предполагаю, что это также добавляет в проблему.
Я надеюсь, что существует решение для этого. Я знаю, что просто использование формата метки времени решило бы его также.. но это выходит за рамки этого вопроса
Я думаю проблема в том, что при записи времени последнего обновления в скрытое поле, подобное этому, будет просто сделана ToString
на дату, которая по умолчанию не будет отображать миллисекунды. Вы можете попробовать отобразить метку времени в виде некоторого абсолютного значения, такого как тики:
<%= Html.Hidden("LastUpdate", Model.LastUpdate.Ticks) %>
Затем вы можете восстановить дату и время с другой стороны, преобразовав значение обратно в длинное и восстановив DateTime:
var dt = new DateTime(Int64.Parse(ticks));