我在sql server 2008中创建了2个表
表1:用户(UserID,Name,FirstName,Login,Password ...),PK:UserID
表2:SessionUser(UserID,Date,Adress),PK:UserID
两个表之间的关系在sql server 2008中设置,关系为1比1,外键在表SessionUser(FK:userID)中
用户表中有用户(实线)
当我尝试在会话表中添加会话时,它向我显示了这个错误:
“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();
如何解决此问题 感谢名单。
答案 0 :(得分:0)
设置UserID
不会起作用。
您可以:
- 从数据库中选择用户,然后设置User
属性
- 创建具有所需ID的新User
并将其附加到上下文中
- 或者,直接设置外键引用:
sessionUser.UserReference.EntityKey = new System.Data.EntityKey(sessionUser.UserReference.RelationshipSet.EntityContainer.Name + "." + sessionUser.UserReference.TargetRoleName, "ID", id);
它有点长,但你可以把它变成一个扩展方法,因为它派上用场。