那天一如往常的用了一個很簡單的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 改成