0

在我的asp.net mvc4示例中,我有名爲Sample的三個列作爲Name,Dept和Id。在這個Id中,作爲identity和primary.I獲得一個值對於Name和Dept from用戶,並將該值插入到實體框架的Sample表中。它將值'0'傳遞給Id.And我得到一個錯誤,因爲「存儲更新,插入或刪除語句影響了意外的行數(0) 。實體可能已被修改或刪除,因爲實體被加載。刷新ObjectStateManager條目「。請幫助我。在asp.net中插入實體框架的值mvc4

+0

嘗試將-1傳遞給id。 –

回答

0

設置"autoincrement"在柱上,並設置id作爲在SQL Server主鍵..

+0

從實體中刪除表並將其重新添加.... –

0

在EF代碼優先,這是通過數據註解來實現。確保在更改方案後重新創建表(或數據庫)。

public class Sample 
{ 
    [Key] 
    [Required] 
    [Column(Order = 0)] 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] //auto increment id 
    public int Id { get; set; } 

    [Required] 
    public string Name { get; set; } 

    [Required] 
    public int Dept { get; set; } 
} 

您不需要爲Id傳遞一個整數。 EF將自動解決此問題。通過填寫名稱和部門來創建對象。通過保存對數據庫的更改,EF將自動填入自動生成的ID。