Проблема с обновлением сущности с помощью столбца метки времени через WCF - PullRequest
0 голосов
/ 07 декабря 2009

Мы пытаемся обновить сущность через WCF, и сущность содержит столбец Timestamp. Когда мы пытаемся выполнить обновление, мы получаем следующую ошибку Data.Linq: «Элемент, который вычисляется или генерируется базой данных, не может быть изменен». Это сообщение относится к столбцу метки времени.

Если мы попробуем то же самое обновление, не используя WCF, оно будет работать нормально. Так что проблема должна быть с WCF. У нас есть правильный атрибут [DataMember] в свойстве Timestamp для сериализации. Кто-нибудь знает, что это может быть за проблема?

Спасибо за вашу помощь.

Randy

1 Ответ

0 голосов
/ 07 декабря 2009

Проблема не имеет никакого отношения к WCF, на самом деле.

Это действительно тип данных SQL Server TIMESTAMP ??

Вы не можете обновлять их - SQL Server автоматически обновляет эти поля всякий раз, когда что-то происходит со строкой.

См. Здесь " Отметки времени и типы данных Datetime " или здесь " Недопонимание отметки времени " для получения более подробной информации.

Как вы обрабатываете обновление данных Linq-to-SQL при получении этого сообщения WCF? Можете ли вы показать нам код для этого?

Например: это поле / свойство определено как свойство только для чтения в контракте на данные? Нет никакого смысла в том, чтобы кто-то пытался обновить это значение ....

Кроме того, поскольку вы отправляете сущности через WCF, они будут «отключенными» сущностями в Linq-to-SQL, например, сущности, которые не находились внутри области DataContext все время. Это может привести к тому, что Linq-to-SQL захочет добавить в вашу базу данных новую сущность с новым значением для столбца метки времени ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...