0

我在 sql server 2008 中创建了 2 个表

表 1:用户(用户 ID,姓名,名字,登录名,密码...),PK:用户 ID
表 2:会话用户(用户 ID,日期,地址),PK:用户 ID

两个表的关系是在sql server 2008中设置的,是1对1的关系,外键在表SessionUser(FK:userID) 尝试添加会话时
User表中有用户(全行)
在会话表中,它向我显示了这个错误:

' ' 中的实体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();

如何解决这个问题谢谢。

4

1 回答 1

0

只是设置UserID不会做的伎俩。

您可以:
- 从数据库中选择用户,然后设置User属性
- 使用所需 ID 创建一个新用户User并将其附加到上下文中
- 或者,直接设置外键引用:

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

它有点长,但是你可以把它变成一个扩展方法,因为它派上用场。

于 2013-05-02T11:24:04.413 回答