0

Entity Manager (C#) でよくわからない問題に直面しています。私はこのようなことにはちょっと慣れていないので、初心者でご容赦ください^^

UserQuestion のインスタンスを作成しようとしています (これにより、テーブル UserQuestionnaire と Question の間のデータベースにリンクが作成されます; UserQuestionnaire は User と Questionnaire をリンクします)。

問題のコードは次のとおりです。

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
 }

UserQuestionnaire = user_questionnaire ステートメントが InvalidOperationException を起動するため、UserQuestion の作成時にエラーが発生します。理由は次のとおり です。

私が理解していないのは、1つのコンテキストしか使用していないということです! (私が共有したコードの最初の行)

誰かがこれを通して私を助けることができますか? 私は本当に何をすべきか本当に知りません:s

ありがとう !

4

1 に答える 1

0

BLL.Questionnaires.Get_Questionnaire_En_Cours()独自のObjectContextを使用しているようです。

于 2012-05-07T15:14:36.550 に答える