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

发布于 2024-12-10 01:46:46 字数 604 浏览 1 评论 0原文

我有 2 个用户表,一张用于保存用户常用信息,一张用于额外信息,它们与 UserId 字段具有一对一的关系。

用户:

UserId >> Primarykey auto increment  
UserName  
Password

用户信息:

UserId >> Primarykey  
MoreInfo

在我的应用程序中,当用户注册新帐户时,我们在用户表中插入一行,稍后如果他想更改某些信息,我们需要添加到 UsersInfo 表。

我面临的问题是,当我尝试插入 UsersInfo 表时,它总是告诉我 UserId 不能为空。虽然我在调用 saveChanges 之前设置了此 userId。

var info = new UserInfo { UserId = userId, MoreInfo = text };
context.UserInfo.Add(info);

我不知道问题是在 EF 还是在 db 中,所以任何信息或要检查的内容都会有帮助。

I have 2 tables for Users, one to hold User common info and one for extra info, they have one to one relation with UserId field.

Users:

UserId >> Primarykey auto increment  
UserName  
Password

UsersInfo:

UserId >> Primarykey  
MoreInfo

in my application , when the user register a new account we insert a row in Users table, and later if he wanted to change some info, we need to add to UsersInfo table.

The problem I am facing is that when I try to insert in the UsersInfo table it always tell me that UserId can't be null. while I have this userId set before i call saveChanges.

var info = new UserInfo { UserId = userId, MoreInfo = text };
context.UserInfo.Add(info);

I don't know if the problem in EF or in db, so any info or something to check will help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

木森分化 2024-12-17 01:46:47

这不是解决方案,而是解决方法。
它可能会起作用:

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

This is not a solution but workaround.
It probably will work:

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
も让我眼熟你 2024-12-17 01:46:47

首先,您不需要使用两个单独的表,除非每个用户有多组额外信息。如果您使用单个表,那么简单的UPDATE查询将使事情变得简单。

如果您想按照自己的方式进行操作,请首先测试 userId 是否为 null 或具有某个值。如果它为空或为空,您一定会收到您提到的错误。

看看是否有帮助。

First thing, you need not use two separate tables, except when u have multiple sets of extra info per user. If you use single table, then a simple UPDATE query will ease the things.

If you want to go your way, first test whether userId is null or having some value. If it is null or empty, you are bound to get the error you mentioned.

See if it helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文