亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我不能在Entity Framework表中插入行?

為什么我不能在Entity Framework表中插入行?

C#
Qyouu 2021-05-14 18:31:35
我使用了從數據庫生成EF代碼的選項。當我嘗試插入時,即使我插入的內容具有bundle_id,也會出現錯誤消息“ bundle_id”是必需的。這是我的代碼[Table("[storage.tblCBMinCreditRequirement]")]public partial class storage_tblCBMinCreditRequirement{    [Key]    [Column(Order = 0)]    [StringLength(255)]    public string bundle_id { get; set; }    [Key]    [Column(Order = 1)]    [StringLength(255)]    public string deal_detail_id { get; set; }    [StringLength(10)]    public string version_code { get; set; }    [StringLength(255)]    public string applicant_id { get; set; }    [StringLength(255)]    public string score { get; set; }    [StringLength(255)]    public string thin_no_hit { get; set; }    [StringLength(255)]    public string thin_no_hit_proxy { get; set; }    [StringLength(255)]    public string thin_file { get; set; }    [StringLength(255)]    public string thin_file_no_hit { get; set; }    [StringLength(255)]    public string limited_credit_flag { get; set; }    [StringLength(255)]    public string limited_credit_empl { get; set; }    [StringLength(255)]    public string limited_credit_sat_auto { get; set; }    [StringLength(255)]    public string qualified_trades { get; set; }    [StringLength(255)]    public string sat_auto_mortgage_trade { get; set; }    [StringLength(255)]    public string min_num_sat_auto_trade { get; set; }    [StringLength(255)]錯誤現在,這是一本關于堆棧溢出的詩,因為這太荒謬了,想要更多的描述。您應該知道堆棧溢出,該代碼就是在機器上顯示我的怒氣的模式。我還要如何調試您?你想對我說些什么白話?我的閑話一定有用嗎?您如何確定我的文字和代碼的價值?代碼不夠嗎?O'Stack Overflow,您會強迫詩歌嗎?
查看完整描述

2 回答

?
溫溫醬

TA貢獻1752條經驗 獲得超4個贊

只需添加到@DevilSuichiro的原始注釋中,您需要在實體的屬性bundle_id上設置DatabaseGeneratedOption.None,如下所示。提供了完全限定的名稱,因此您不必尋找名稱空間:)


[Key]

[Column(Order = 0)]

[StringLength(255)]   

[DatabaseGenerated(DatabaseGeneratedOption.None)] // Located here: System.ComponentModel.DataAnnotations.Schema

public string bundle_id { get; set; }

為什么?


默認情況下,默認情況下在Entity Framework中的主鍵列上設置DatabaseGeneratedOption.Identity。這表明數據庫負責生成值。結果,由于期望SQL生成值,因此Entity Framework將從任何生成的SQL Insert語句中排除該列。


要查看實際效果,請使用


yourDbContext.Database.Log() = (query) => Debug.WriteLine(query);

在執行SaveChanges或運行SQL事件探查器以查看生成的SQL中的差異之前。


更新


為了清楚起見,當您使用Database.Log()=(query)=> Debug.WriteLine(query);時,結果將輸出到Visual Studio的“診斷工具”窗口中。除非您先前關閉了窗口,否則在啟動調試會話時默認情況下會啟動該程序。


如果在調試時沒有顯示給您,則可以在這里找到:調試-> Windows->顯示診斷工具。


下面是一個示例輸出,所以你知道你在找什么:

http://img1.sycdn.imooc.com//60b1de0900017e1806390099.jpg

查看完整回答
反對 回復 2021-05-29
?
鳳凰求蠱

TA貢獻1825條經驗 獲得超4個贊

您可以嘗試隱藏bundle_id在您的 cshtml 文件中。


查看完整回答
反對 回復 2021-05-29
  • 2 回答
  • 0 關注
  • 166 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號