【问题标题】:Foreign key record in Entity Framework实体框架中的外键记录
【发布时间】:2014-10-06 12:20:28
【问题描述】:

我最近开始使用 Entity Framework,但遇到了问题。

我的解决方案中有 2 个使用 Entity Framework 映射的简单表:

员工:

emp_id INT
first_name VARCHAR
last_name VARCHAR
department INT ( FOREIGN KEY MAPPED TO departments.dept_id )

和

部门:

dept_id INT
department_name VARCHAR

使用下面的代码,我想写入数据库。

var record = db.employees.Create();

string test = "test";

record.first_name = test;
record.last_name = test;
record.department = 1;

db.employees.Add(record);
db.SaveChanges();

我得到一个错误错误:

“'DBContextContainer.employees' 中的实体参与了 'employeedepartment' 关系。找到 0 个相关的 'department'。需要 1 个 'department'。”

db.SaveChanges() 方法。有人可以向我解释如何解决或解决此问题吗?

更新:departments 表中有一条记录,dept_id 为 1,但我仍然收到错误消息。

【问题讨论】:

  • Departments 表中是否存在 ID 为 1 的部门?
  • 是的,departments表中有一条dept_id为1的记录
  • 向我们展示数据库的内容?由于某种原因,EntityFramework 无法找到dept_id 1 的部门。

标签: entity-framework entity-framework-6


【解决方案1】:

您需要先向Departments 表添加一个字段,因为Departments 是父表(员工根据您的表结构依赖于部门)。您不能将employee 与department 添加在Departments 表中没有对应条目的Departments。

【讨论】:

  • 嗨,我已经完成了。在departments表中有一条dept_id为1的记录
  • @user3648426 为什么Employees 的部门是varchar 而Departments 的部门是int。它们必须相同。
  • 嗨,我的错,我在帖子中犯了一个错误,但已经更正了。它(employees.department)在我的模型和数据库中实际上都是一个 INT。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多