所以,我有两个表:Employee和Address。每个员工都必须有一个地址。
EmployeeId是Employee表中的PK,它是Identity和auto increment AddressId是地址表中的PK,它是身份和自动增量
当我想要创建新记录时,我正在 A dependent property in a ReferentialConstraint is mapped to a store-generated column. Column:
我浪费了一整天但仍然不知道如何解决它。另外,我是DataBase编程的初学者。我正在使用实体框架和C#:
我正在上传图片以获取更多信息:
答案 0 :(得分:0)
这是因为表中放置了错误的外键。
Chrck在关系中特别是外键。删除架构。您需要更新EDMX文件(并且不足以刷新"模型中的表格,您需要删除并在模型中再次添加表格。)
答案 1 :(得分:0)
关系数据库中实际上不可能存在1..1关系。问题是没有插入不违反其他外键的实体的顺序。如果您先插入员工,则地址尚不存在,但您无法在没有员工的情况下插入地址。
因此,我对您确切问题的建议是将其更改为0-1..1关系。每个员工必须都有一个地址,但您 然后先插入地址,分配给员工,然后插入员工。然后保存在一个事务中。
个人建议:如果您的关系确实是1..1,则没有理由将其拆分为两个表。表和关系的重点是避免冗余。但是,必须拥有员工的地址表无论如何都不能用于其他任何事情,因此您也可以将地址列添加到员工表中。这不仅有效,而且速度更快。
数据库设计和类设计最佳实践并不完全相同。在C#中应该分成两个类的可能是单个表,反之亦然。
答案 2 :(得分:0)
我在地址表AddressId上更改了IsIdentity,但仍然是主键。这解决了我的问题。