簡體   English   中英

實體框架錯誤消息DbUpdateException

[英]Entity Framework error message DbUpdateException

作為任務的一部分,我必須使用實體框架創建一個Web應用程序。 我正在https://docs.microsoft.com/zh-CN/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/creating-an-entity-framework- ASP.NET MVC應用程序的數據模型

有四個表: BranchDepartmentEmployeeTitle

在創建一種方法來播種數據之后,我已經在調試模式下運行了該應用程序,並收到以下錯誤消息:

System.Data.Entity.Infrastructure.DbUpdateException:'更新條目時發生錯誤。 有關詳細信息,請參見內部異常。 SqlException:INSERT語句與FOREIGN KEY約束“ FK_dbo.Employee_dbo.Branch_BranchId”沖突。 數據庫“ HumanResourcesWebApp1”的表“ dbo.Branch”的列“ ID”中發生了沖突。 該語句已終止。

我已經研究了此消息,但沒有遵循所找到的答案。 我將為您提供一些指導。 如果有幫助,我還將添加類的結構。 我了解到,當被Employee表視為外鍵時,問題出在Branch表的主鍵之間,但我不知道在哪里進行更改。

分行

public int ID { get; set; }
public string Address { get; set; }
public int DepartmentID { get; set; }
public virtual ICollection<Employee> Employees { get; set; }

部門

public int ID { get; set; }
public string DepartmentName { get; set; }
public string DepartmentFunction { get; set; }
public virtual ICollection<Branch> Branches { get; set; }

員工人數

public int ID { get; set; }
public string FirstName { get; set; }
public string SecondName { get; set; }
public double Salary { get; set; }
public DateTime StartingDate { get; set; }
public int BranchId { get; set; }
public int TitleId { get; set; }

職稱

public int ID { get; set; }
public string TitleName { get; set; }
public virtual ICollection<Employee> Employees { get; set; }

提前致謝

您正在嘗試保存引用不存在的分支的員工詳細信息。 這是因為您根本沒有設置分支ID,或者您已將其設置為分支表中不存在的數字將雇員分支ID設置為已存在的分支。 如果不存在分支,請創建一個。 只要雇員正確引用分支,您就應該能夠同時在代碼中創建分支和雇員。 實體框架應首先保存分支,以便在保存員工時就存在​​該分支

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM