2013-05-02 2 views
0

создать 2 таблицы в SQL Server 2008отношения 12:59 ошибка EntityFramework

Таблица 1: Пользователь (UserID, Name, FirstName, Логин, пароль ...), ПК: Идентификатор_пользователя
Таблица 2: SessionUser (Идентификатор_пользователя, Дата, Адрес), ПК: Идентификатор_пользователь

связь между двумя таблицами устанавливаются в SQL Server 2008, с 1 до 1 отношений и внешний ключ в таблице SessionUser (FK: идентификатор пользователь)
есть пользователи в таблице пользователя (полные строки)
, когда я попытался добавить сеанс в таблицу сеансов, он показывает мне эту ошибку:

Объекты в 'DistributionSSEntities.SessionUser' участвуют в 'FK_SessionUser_User' отношений. 0 связанных «Пользователь». Ожидается 1 «Пользователь».

код:

DistributionSSEntities db = new DistributionSSEntities(); 
SessionUser sessionUser = new SessionUser(); 

      sessionUser.UserID = 12; // this ID existe in User table 
      sessionUser.Date = "12-12-2012"; 
      sessionUser.AdressIP = "192.168.1.1"; 


      db.AddToSessionUser(sessionUser); 
      db.SaveChanges(); 

, как решить эту проблему Thanx.

+0

Возможный дубликат [Entity Framework EntityKey/Foreign Key problem] (http://stackoverflow.com/questions/1011519/entity-framework-entitykey-foreign-key-problem) – CodeCaster

ответ

0

Просто установка UserID не поможет.

Вы можете:
- выберите пользователя из базы данных, а затем установите User свойство
- создать новый User с нужным ID и прикрепить его к контексту
- или, набор внешних ключей ссылки непосредственно:

sessionUser.UserReference.EntityKey = new System.Data.EntityKey(sessionUser.UserReference.RelationshipSet.EntityContainer.Name + "." + sessionUser.UserReference.TargetRoleName, "ID", id); 

Это немного длинный, но вы можете сделать его способом расширения, поскольку он пригодится.

Смежные вопросы