2013-04-08 31 views
0

我有這樣的功能:「無法插入的標識列顯式值......」即使我不

private static void SaveResource(StrategicPlanningDbDataContext ctx, ResourceModel resource, int impliedID) 
    { 
     var existing = ctx.Resources.FirstOrDefault(r => r.ID == resource.ID) ?? 
         new Resource(); 

     existing.ImpliedID = impliedID; 
     existing.HasAccepted = resource.HasAccepted; 
     existing.IsPrimary = existing.IsPrimary; 
     existing.UserID = resource.UserID; 

     if (existing.ID == default(int)) 
     { 
      ctx.Resources.InsertOnSubmit(existing); 
      ctx.SubmitChanges(); 
      resource.ID = existing.ID; 
     } 
    } 

我得到一個Cannot insert explicit value for identity column in table 'Resource' when IDENTITY_INSERT is set to OFF.消息時,我打ctx.SubmitChanges()一新的ResourceResource.ID是一個身份(顯然)。當我們進入函數時它是0(因爲我剛剛創建它,並且int顯然必須具有默認值。)

我試過從我的dbml中刪除表並重新添加它幾次,但是我不斷收到這個錯誤。我檢查了設計師,設計師有[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)] ID屬性之上。

任何想法?

回答

0

好吧,我關閉並重新啓動Visual Studio和這一切變得更好。(作爲除此之外,如果我完全從.dbml中刪除表格,那麼它也編譯得很好,這呃,沒有任何意義)

相關問題