2 回答

TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個(gè)贊
只需添加到@DevilSuichiro的原始注釋中,您需要在實(shí)體的屬性bundle_id上設(shè)置DatabaseGeneratedOption.None,如下所示。提供了完全限定的名稱,因此您不必尋找名稱空間:)
[Key]
[Column(Order = 0)]
[StringLength(255)]
[DatabaseGenerated(DatabaseGeneratedOption.None)] // Located here: System.ComponentModel.DataAnnotations.Schema
public string bundle_id { get; set; }
為什么?
默認(rèn)情況下,默認(rèn)情況下在Entity Framework中的主鍵列上設(shè)置DatabaseGeneratedOption.Identity。這表明數(shù)據(jù)庫(kù)負(fù)責(zé)生成值。結(jié)果,由于期望SQL生成值,因此Entity Framework將從任何生成的SQL Insert語(yǔ)句中排除該列。
要查看實(shí)際效果,請(qǐng)使用
yourDbContext.Database.Log() = (query) => Debug.WriteLine(query);
在執(zhí)行SaveChanges或運(yùn)行SQL事件探查器以查看生成的SQL中的差異之前。
更新
為了清楚起見(jiàn),當(dāng)您使用Database.Log()=(query)=> Debug.WriteLine(query);時(shí),結(jié)果將輸出到Visual Studio的“診斷工具”窗口中。除非您先前關(guān)閉了窗口,否則在啟動(dòng)調(diào)試會(huì)話時(shí)默認(rèn)情況下會(huì)啟動(dòng)該程序。
如果在調(diào)試時(shí)沒(méi)有顯示給您,則可以在這里找到:調(diào)試-> Windows->顯示診斷工具。
下面是一個(gè)示例輸出,所以你知道你在找什么:
- 2 回答
- 0 關(guān)注
- 147 瀏覽
添加回答
舉報(bào)