在一对一关系表中插入一条新记录
本文关键字:插入 一条 新记录 一对一 关系 | 更新日期: 2023-09-27 18:11:15
我有2个用户表,一个用于保存用户常用信息,一个用于额外信息,它们与UserId字段有一对一的关系。
用户:
UserId >> Primarykey auto increment
UserName
Password
UsersInfo:
UserId >> Primarykey
MoreInfo
在我的应用程序中,当用户注册一个新帐户时,我们在Users表中插入一行,然后如果他想更改一些信息,我们需要添加到UsersInfo表中。
我面临的问题是,当我试图在UsersInfo表中插入时,它总是告诉我UserId不能为空。当我在调用saveChanges之前设置这个userId时。
var info = new UserInfo { UserId = userId, MoreInfo = text };
context.UserInfo.Add(info);
我不知道问题是否在EF或在db,所以任何信息或东西检查将有所帮助。
这不是一个解决方案,而是一个变通方法。它可能会工作:
Users:
----
UserId >> Primary key & Auto increment
UserName
Password
UsersInfo:
----
UsersInfoId >> Primary key auto increment
UserId >> Foreign key & Unique constraint (for one-to-one relation)
MoreInfo
首先,您不需要使用两个单独的表,除非每个用户有多组额外信息。如果您使用单个表,那么一个简单的UPDATE查询将简化事情。
如果您想按自己的方式操作,首先测试userId是否为null或有一些值。如果它是null或空的,你一定会得到你提到的错误。