Вставка записи в таблицу данных со столбцом имеет тип данных метки времени - C # / SQL 2008 - PullRequest
1 голос
/ 12 декабря 2011

Мы переместили наше приложение с использования EntityFramework 4.2 и нескольких других коммерческих продуктов ORM в ADO.NET по соображениям производительности, и это действительно доказывает цель.

но мы столкнулись с проблемой, связанной с меткой времени типа данных.

в EF мы помещаем столбец с типом метки времени в каждую нашу таблицу, и мы разрешаем EF использовать этот столбец для управления версиями,

сейчас мы используем ADO.Net с набором данных / datatable, я не уверен, как инициализировать новое значение для столбца метки времени для каждой новой строки, добавляемой в таблицу данных. вот одна из ошибок. Столбец «RECVERSION» должен быть уникальным. Значение 'System.Byte []' уже присутствует. мы могли бы отключить ограничение, но мы хотели бы иметь это ограничение для версии строки Вопрос: Как у нас есть какая-то автоматическая инициализация нового значения для метки времени в автономной среде набора данных / таблицы данных? Спасибо

1 Ответ

2 голосов
/ 12 декабря 2011

Столбец типа TIMESTAMP (или ROWVERSION с SQL Server 2008) будет всегда автоматически обрабатываться SQL Server.

И не может и не должен вставлять в него какие-либо значения. Просто оставь это! Вам просто нужно выбрать его, чтобы определить, когда строка была изменена между временем, когда вы ее читаете, и моментом, когда вы пытаетесь обновить его.

Не пытайтесь вставить или установить это значение! Просто исключите его из любого оператора SQL INSERT или UPDATE. SQL Server сделает всю работу за вас.

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