在一对一关系表中插入一条新记录

本文关键字:插入 一条 新记录 一对一 关系 | 更新日期: 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或空的,你一定会得到你提到的错误。