Хорошо, я использую SQL Server Express 2008 и .Net 3.5 (C#)Вопрос Linq-To-Sql с датой?
У меня есть пара полей datetime в базе данных и я пытаюсь сделать редактирование строки (используя Linq-to-Sql) Я получаю сообщение об ошибке «Строка не найдена или не изменена».
Я потратил некоторое время на создание сгенерированного SQL, и кажется, что проблема вызвана миллисекундами, привязанными к дате.
Сгенерированный SQL, который не работает,
@p5: Input DateTime (Size = 0; Prec = 0; Scale = 0) [20/10/2009 16:04:45]
@p6: Input DateTime (Size = 0; Prec = 0; Scale = 0) [23/10/2009 10:15:36]
@p7: Input DateTime (Size = 0; Prec = 0; Scale = 0) [23/10/2009 09:27:27]
AND ([SignUpDate] = @p5)
AND ([LastActivityDate] = @p6)
AND ([LastLoginDate] = @p7)
если я изменить его сам, как так она работает,
@p5: Input DateTime (Size = 0; Prec = 0; Scale = 0) [20/10/2009 16:04:45.390]
@p6: Input DateTime (Size = 0; Prec = 0; Scale = 0) [23/10/2009 10:15:36.733]
@p7: Input DateTime (Size = 0; Prec = 0; Scale = 0) [23/10/2009 09:27:27.747]
AND ([SignUpDate] = @p5)
AND ([LastActivityDate] = @p6)
AND ([LastLoginDate] = @p7)
Каковы мои варианты в пути, чтобы получить Arround это?
Просто, чтобы добавить это мой редактировать код,
var UserToEdit = this.GetUser(UserId);
UserToEdit.Forename = Fields["Forename"];
UserToEdit.Surname = Fields["Surname"];
UserToEdit.DateOfBirth = Convert.ToDateTime(Fields["DateOfBirth"]);
UserToEdit.DisplayName = Fields["DisplayName"];
UserToEdit.TelephoneNumber = Fields["TelephoneNumber"];
_db.SubmitChanges();
Вы не должны чувствовать, что это взломать. Каждый пользователь идентифицируется по его/ее значению. Почему вы должны заботиться о LastActivityDate, который будет несколько изменяться в предложении WHERE? – liggett78
Принципиально для оптимистической блокировки. Это позволяет нам проверить, что объект не изменился с тех пор, как мы его получили. – LiamB