2013-05-02 64 views
0

我在SQL Server中創建2臺2008關係一對一的EntityFramework錯誤

表1:用戶(用戶ID,姓名,名,登錄密碼......),PK:用戶名
表2:SessionUser(用戶名,日期,ADRESS),PK:用戶名

兩個表之間的關係被設置在SQL Server 2008,以1對1間的關係和外鍵是表SessionUser(FK:用戶ID)
有User表中的用戶(全行)
當我嘗試在會話表中添加一個會話時,它向我顯示此錯誤:

'DistributionSSEntities.SessionUser'中的實體參與'FK_SessionUser_User'關係。 0相關'用戶'被發現。預計會有'用戶'。

代碼:

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(); 

如何解決這個問題 感謝名單。

+0

[Entity Framework EntityKey/Foreign Key problem]的可能重複(http://stackoverflow.com/questions/1011519/entity-framework-entitykey-foreign-key-problem) – CodeCaster 2013-05-02 11:21:05

回答

0

只要設置UserID就無能爲力。

您可以:
- 從數據庫中選擇用戶,然後設置User屬性
- 創建一個新的User與所需的ID,並將其附加到上下文
- 或者,設置外鍵引用直接:

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

這有點長,但你可以使它成爲一個擴展方法,因爲它派上用場。