我有3代表許多一對多relationaship如何只插入新的關係和刪除現有關係 - 多對多的實體框架4.0
問題 - (QuestionId,問題)
標籤 - (標籤識別,標籤名)
QuestionTag - (QuestionId,標籤識別)
我有一種情況,用戶提出問題,他們可以將其添加相關的標籤。
後來,如果他們需要爲現有的任務添加一些新的標記(這已經在數據庫中),那麼該怎麼做? 我只需要將questionId和TagId添加到「QuestionTag」表中,而無需添加新的問題或標記,因爲它們已添加到表中。怎麼做?
我在鏈接Insert/Update Many to Many Entity Framework . How do I do it? 處發現了一個類似的問題,它具有類似的情況,其中添加了新問題並映射了已經在數據庫中的標籤。
using (var context = new MyContext())
{
var question= new Question { Question = "I have a question" };
Tag tag1 = context.Tags.FirstOrDefault(s => s.Name == "C#");
Tag tag2 = context.Tags.FirstOrDefault(s => s.Name == ".net");
question.Tags.Add(tag1);
question.Tags.Add(tag2);
context.AddToQuestiones(question);
context.SaveChanges();
}
因此,爲了與我的情況下工作,我修改了上面的代碼爲
var question= context.Question.FirstOrDefault(q => q.QuestionId == 1);
,但我得到了以下異常。
「這兩個對象之間的關係無法定義,因爲它們被連接到不同的ObjectContext對象上。」 「
此外,如何從「QuestionTag」的問題標籤中刪除任何問題,如果錯誤地添加了不匹配標籤名稱。
幫我解決這個問題。
謝謝!有效!!我爲Ques和Tags使用了單獨的上下文。 – 2012-04-13 18:00:07