2016-11-17 110 views
2

我試圖添加一個房間到我的數據庫,但不斷得到上述錯誤,並找不出原因。db.SaveChanges()結果在System.Data.Entity.Infrastructure.DbUpdateException發生在EntityFramework.dll

我試圖插入:

ID:12345 名稱:房

沒有在數據庫中沒有條目與12345的ID,其實沒有條目,我不能插入任何東西。

型號

public class Room 
{ 
    [DatabaseGenerated(DatabaseGeneratedOption.None)] 
    public int ID { get; set; } 

    public string name { get; set; } 

    public virtual ICollection<RoomItem> RoomItems { get; set; } 
    public virtual ICollection<StaffRoom> StaffRooms { get; set; } 
    public virtual ICollection<RoomAudit> RoomAudit { get; set; } 
} 

控制器

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult Create([Bind(Include = "ID, name")] Room room) 
{ 

    db.Rooms.Add(room); 
    db.SaveChanges(); 
    return RedirectToAction("Index"); 

} 

連接字符串

<connectionStrings> 
    <add name="UniversityContext" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=RoomAudit;Integrated Security=SSPI;" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

我一直在努力爲了解決這個問題需要幾個小時,所以任何幫助都會受到大力讚賞

編輯

完整的錯誤:

型 'System.Data.Entity.Infrastructure.DbUpdateException' 的異常出現在EntityFramework.dll但在用戶代碼

其他沒有處理信息:更新條目時發生錯誤。詳情請參閱內部例外。

內部異常1:

{ 「而更新條目中出現了一個錯誤,請參閱內部異常的詳細信息。」}

內部異常2:

{「無法插入顯式值在表中「房間」當IDENTITY_INSERT設置爲OFF「}標識列

+0

能否請您分享您的例外消息與所有細節?謝謝 – Christos

+0

@Christos感謝您的關注 - 我添加了Visual Studio引發的完全異常,但似乎並未顯示太多內容。 – James

+0

不客氣!通常情況下,整個事實都是在例外的完整信息中。 – Christos

回答

1

的問題如下:

Cannot insert explicit value for identity column in table 'Room' when IDENTITY_INSERT is set to OFF

ID是標識列,您嘗試插入以設置此值。一個快速的解決方法是改變你的列並刪除身份。但是,我不確定這是否是您的案例最適合的設計解決方案。主鍵通常被定義爲自動遞增(標識列)整數值。但是,這不是一個你應該始終遵循的規則。這取決於我之前對您的設計選擇所說的話。

+0

我也剛剛注意到,沒有意識到你可以深入研究一些例外情況。我需要能夠手動設置每個房間的ID因此我的問題。 – James

相關問題