在一对一关系表中插入新记录
我有 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这不是解决方案,而是解决方法。
它可能会起作用:
This is not a solution but workaround.
It probably will work:
首先,您不需要使用两个单独的表,除非每个用户有多组额外信息。如果您使用单个表,那么简单的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.