InvalidOperationException,因为ObjectContext对象不同

时间:2012-05-07 15:07:51

标签: c# asp.net entity-framework objectcontext

我正面临一个问题,我对实体经理(C#)并不了解。我对这些东西有点新意,所以请忍受我的noobness ^^

我试图创建一个UserQuestion实例(在UserBuestionnaire和Question之间创建DataBase中的链接; 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

谢谢!

1 个答案:

答案 0 :(得分:0)

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