【问题标题】:How can I change a primary key value in one-one relationship?如何更改一对一关系中的主键值?
【发布时间】:2011-03-11 21:05:14
【问题描述】:


我正在使用实体框架 4 作为业务层。
我有两个一对一关系的表:
用户 员工
雇员表与用户表具有相同的主键,因此当我向用户添加记录时,我必须向雇员添加一个具有相同 PK 值的...这会引发异常。
其实我是用实体框架做的:

// after adding new Users entity, I add new Employee item to it  
newUserEntity.Employee = newEmployeeEntity;

我应该怎么做才能手动插入PK?

提前致谢

【问题讨论】:

  • 你得到什么异常?表中的键是如何定义的?

标签: sql-server entity-framework


【解决方案1】:

有很多方法可以解决这个问题。

第一个是为什么你有两张桌子。您能否改为拥有一个表,但拥有该表的 User 和 Employee 视图。

第二个是如果你有两个表,为什么它们都有一个自动生成的主键。您可以在程序中生成键(或从键表中获取),然后将键值插入表中。

【讨论】:

  • 我有两个表,因为除了与 Employee 相关的其他属性之外,Employee 实体应该具有与 User 实体相同的属性。我应该说我有另一个名为 Clients 的表,它具有相同的关系作为员工和用户......这就是为什么我应该制作三个表:用户、员工和客户。谢谢
  • 不是3表,1表2视图
  • 我知道视图是一个虚拟表,你可以使用其他表的字段来构建,如果你的意思是我应该将所有字段放在用户表中(即使是员工和客户表的字段) ,当我为员工插入新记录时,我将客户的字段留空,反之亦然?我想用你提到的方式(第二种方式)做我想做的事,但由于某种原因我做不到。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-19
  • 2012-12-14
  • 1970-01-01
  • 2014-08-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多