1. 程式人生 > >EF:插入記錄失敗,提示當 IDENTITY_INSERT 設定為 OFF 時,不能向表中的標識列插入顯式值

EF:插入記錄失敗,提示當 IDENTITY_INSERT 設定為 OFF 時,不能向表中的標識列插入顯式值

EF忽然報錯:
增加記錄時,提示當 IDENTITY_INSERT 設定為 OFF 時,不能向表 '。。。' 中的標識列插入顯式值。
真奇怪,新增記錄方法一向好地地,從沒出過錯。要出錯,那也是Update時才會,什麼“附著不附著”的問題。
從提示資訊來看,是向標識列插入了值。那麼EF為什麼會認不出標識列呢?
原來,是因為同事首先生成了EF程式碼,然後再在資料庫中將某欄位改成了標識列,改完以後,沒有重新整理EF程式碼,因此EF沒有認出該


欄位為標識列。
在.edmx檔案裡,檢視其程式碼,對實體類有如下描述:
        <EntityType Name="Status_Info">
          <Key>
            <PropertyRef Name="ID" />
          </Key>
          <Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
          <Property Name="StatusID" Type="int" />
          <Property Name="Color" Type="nchar" MaxLength="10" />
        </EntityType>

是否標識列,一目瞭然。

教訓:資料庫更改,一定要重新整理EF程式碼。