Вставка записи в таблицу данных со столбцом имеет тип данных временной метки - C#/SQL 2008

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

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

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

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

1 ответ

Решение

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

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

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

Другие вопросы по тегам