1

パフォーマンス上の理由から、アプリケーションを EntityFramework 4.2 およびその他のいくつかの商用 ORM 製品の使用から ADO.NET に移行しましたが、それは目的を証明しています。

しかし、データ型のタイムスタンプという問題に直面しました。

EF では、各テーブルにタイムスタンプ データ型の列を配置し、EF がこの列をバージョン管理に使用できるようにします。

現在、データセット/データテーブルで ADO.Net を使用していますが、データテーブルに追加された新しい行ごとにタイムスタンプ列の新しい値を初期化する方法がわかりません。これがエラーの1つです。列「RECVERSION」は一意になるように制約されています。値 'System.Byte[]' は既に存在します。制約を無効にすることもできますが、この制約を行バージョンに適用したいと考えています。質問: 切断されたデータセット/データ テーブル環境で、タイムスタンプの新しい値を自動的に初期化するにはどうすればよいですか? ありがとう

4

1 に答える 1

2

TIMESTAMPtype (またはROWVERSIONSQL Server 2008 以降)の列は、常にSQL Server によって自動的に処理されます。

また、それに値を挿入することはできませんし、挿入してはなりません。放っておいてください!行を読んでから更新しようとするまでの間に行がいつ変更されたかを検出するには、それを選択する必要があります。

この値を挿入または設定しようとしないでください。INSERTSQLまたはUPDATEステートメントから除外するだけです。SQL Server がすべての作業を行います。

于 2011-12-12T06:21:16.467 に答える