2021年8月6日 星期五

當 IDENTITY_INSERT 設為 OFF 時,無法將外顯值插入資料表 'XXX' 的識別欄位中。

 那天一如往常的用了一個很簡單的table 還有很簡單的EF的新增,但就跟小時候的女朋友一樣好好的說分手就分手.......

情歌就不必唱了..來吧!前女友   

有個table 長這樣


           相對應的部份程式碼如下
     
                using (var db = new WebDbcontext())
                {
                    Entity.Web.VoteGroup group = new Entity.Web.VoteGroup();
                    group.VoteID = 1;
                    group.GVoteName = "第一選區";
                    group.GVoteNumber = "10";
                    db.VoteGroup.Add(group);
                    result = db.SaveChanges();
                }


這看起來沒有什麼.再一般不過的EF 新增,結果報了錯
System.Data.Entity.Infrastructure.DbUpdateException: 更新實體時發生錯誤。如需詳細資料,請參閱內部例外狀況。 ---> System.Data.Entity.Core.UpdateException: 更新實體時發生錯誤。如需詳細資料,請參閱內部例外狀況。 ---> System.Data.SqlClient.SqlException: 當 IDENTITY_INSERT 設為 OFF 時,無法將外顯值插入資料表 'XXX' 的識別欄位中。

於是乖乖的重拉EF 千百回..當然沒用
檢查了半天也看不出來什麼原因.自動增長值EF是不需給值的.嗯很好.也沒給
難不成是因為欄位順序.因為在SQL 裡是 Insert table('VoteID','GVoteName','GVoteNumber') values(1,'第一選區',10)  欄位是1,3,4   自動增長值是第2,不會因為這樣就認不出來吧?
所以呢我把DB 改成
    

心裡想著真的這麼笨.我也認了! 結果 燈燈.....也是一樣的錯誤訊息....

最後生氣的拔掉了 VoteID的KEY值




安心亞忽然向我走來 ,像是作夢一樣

哇,這一次是真的成功了! 愛怎麼新增就怎麼新增.沒問題了!




沒有留言:

張貼留言

簽署時發生錯誤: 無法簽署 bin\Debug\app.publish\XXX.exe。SignTool Error: No certificates were found that met all the given criteria.

 這是一個程式碼簽署憑證的問題。當您的專案設定要進行程式碼簽署,但系統找不到合適的憑證時就會出現這個錯誤。以下是幾種解決方法: 方法 1:移除程式碼簽署設定 如果您不需要程式碼簽署,可以在專案中移除相關設定: 在 Visual Studio 中右鍵點擊專案 → 屬性 點擊「...