Вставьте новую запись в реляционные таблицы один к одному - PullRequest
0 голосов
/ 15 октября 2011

У меня есть 2 таблицы для пользователей, одна для хранения общей информации о пользователе и одна для дополнительной информации, они имеют однозначное отношение к полю UserId.

Пользователи:

UserId >> Primarykey auto increment  
UserName  
Password

UsersInfo:

UserId >> Primarykey  
MoreInfo

в моем приложении, когда пользователь регистрирует новую учетную запись, мы вставляем строку в таблицу Users и позже, если он хочет изменить некоторую информациюнам нужно добавить в таблицу UsersInfo.

Проблема, с которой я сталкиваюсь, заключается в том, что при попытке вставить в таблицу UsersInfo она всегда говорит мне, что UserId не может быть нулевым.пока я установил этот userId, прежде чем я вызову saveChanges.

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

Я не знаю, проблема в EF или в дБ, поэтому любая информация или что-то, что нужно проверить, поможет.

Ответы [ 2 ]

2 голосов
/ 15 октября 2011

Это не решение, а обходной путь.Это, вероятно, будет работать:

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
1 голос
/ 15 октября 2011

Во-первых, вам не нужно использовать две отдельные таблицы, кроме случаев, когда у вас есть несколько наборов дополнительная информация на пользователя.Если вы используете одну таблицу, то простой запрос UPDATE облегчит задачу.

Если вы хотите пойти своим путем, сначала проверьте, является ли userId null или имеет какое-либо значение.Если оно пустое или пустое, вы обязательно получите упомянутую ошибку.

Посмотрите, поможет ли это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...