0

我遇到了一个我不太了解 Entity Manager (C#) 的问题。我对这个东西有点新,所以请忍受我的菜鸟^^

我正在尝试创建一个 UserQuestion 的实例(这使得数据库中的表 UserQuestionnaire 和 Question 之间的链接; UserQuestionnaire 链接用户和问卷)。

所以这是有问题的代码:

public static void Insert_Resultat_Question_BDD(Question q, double resultat) {
     DataSourceContainer bdd = new DataSourceContainer(); // initializes the Context
     User user = BLL.Users.Get_User_Connecté(); // Gets the connected user
     Questionnaire questionnaire = BLL.Questionnaires.Get_Questionnaire_En_Cours(); // Gets the questionnaire being taken
     UserQuestionnaire user_questionnaire = bdd.UserQuestionnaireSet.FirstOrDefault(i => i.User.id == user.id && i.Questionnaire.id == questionnaire.id); // Get the UserQuestionnaire object for the user and questionnaire above
     UserQuestion uq = new UserQuestion {  score = resultat * q.bareme, bareme = q.bareme, Question = q, UserQuestionnaire = user_questionnaire }; // Creates the object
     bdd.AddToUserQuestionSet(uq); // Add it to the table
     bdd.SaveChanges(); // Save
 }

创建 UserQuestion 时出现错误,因为 UserQuestionnaire = user_questionnaire 语句会启动 InvalidOperationException,因为: “无法定义两个对象之间的关系,因为它们附加到不同的 ObjectContext 对象。”

我不明白的是我只使用 1 个上下文!(我分享的代码中的第一行)

有人可以帮我解决这个问题吗?我真的不知道还能做什么:s

谢谢 !

4

1 回答 1

0

听起来像是BLL.Questionnaires.Get_Questionnaire_En_Cours()使用了自己的 ObjectContext。

于 2012-05-07T15:14:36.550 回答