0

既存のテーブルを一時的に変更した後、データベースからモデルを更新しました。テーブルに追加した2つの新しい列で、これらのエラーが発生しました。

エラー 3004: 行 1388 から始まるフラグメントのマッピングに問題があります: Set TbCities のプロパティ TbCities.SysStartTime、TbCities.SysEndTime にマッピングが指定されていません。次の場合、キー (PK) を持つエンティティは往復しません: エンティティのタイプが [DiERPModel.TbCities] 1389 15 DiERP

これは、テーブルを変更するための私のクエリです:

  --Step 1. Adding nullable the columns
  ALTER TABLE Common.TbCities ADD SysStartTime datetime2 NULL  
  GO
  ALTER TABLE Common.TbCities ADD SysEndTime datetime2 NULL  
  GO
  --Step 2 Adding the default constraints
  ALTER TABLE Common.TbCities ADD CONSTRAINT DF_Cities_SysStartTime DEFAULT GETDATE() FOR SysStartTime;
  GO
  ALTER TABLE Common.TbCities ADD CONSTRAINT DF_Cities_SysEndTime DEFAULT CAST('9999-12-31 23:59:59.9999999' AS DATETIME2) FOR SysEndTime;
  --Step 3 Updating the column
  UPDATE Common.TbCities 
    SET SysStartTime = '19000101 00:00:00.0000000'
        ,SysEndTime = '99991231 23:59:59.9999999'
  GO
  --Step 4 Setting NOT NULL to the columns
  ALTER TABLE Common.TbCities ALTER COLUMN SysStartTime datetime2 NOT NULL  
  GO
  ALTER TABLE Common.TbCities ALTER COLUMN SysEndTime datetime2 NOT NULL  
  GO
  --Step 5 Adding PERIOD FOR SYSTEM_TIME option
  ALTER TABLE Common.TbCities ADD PERIOD FOR SYSTEM_TIME (SysStartTime, SysEndTime)
  GO
  --Step 6 Setting SYSTEM_VERSIONING property
  ALTER TABLE Common.TbCities
      SET (SYSTEM_VERSIONING = ON (HISTORY_TABLE = Common.TbCities_History))
  GO 
4

1 に答える 1