在我的模型中,一個問題可以有許多有效答案,並且答案可以用於許多問題。我在Answer.Text屬性上有一個唯一的索引來防止重複並確保驗證有效。我在我的Seed方法中有這個代碼。如何使用代碼優先種子關係
Answer _None = new Answer { Text = "None", SortOrder = 50 };
context.Answers.AddOrUpdate(x => x.Text, _None);
context.SaveChanges();
Question q = new Question
{
Text = "Bathroom flooring",
Answers = new Answer[]
{
_None,
new Answer { Text = "Carpet", SortOrder = 60}
}
}
context.Questions.AddOrUpdate(x => x.Text, q);
context.SaveChanges();
的方法,因爲另一個插件試圖上context.SaveChanges第二次調用()與文本「無」的回答引發錯誤。 *無法在具有唯一索引'IX_NaturalKey'*的對象'dbo.Answers'中插入重複鍵行。重複的鍵值是(無)「爲什麼是第二個插入試圖將現有對象添加到關係,是有辦法,以防止它
我試過了代碼,它運行得很好 – zsong
嘗試從你的上下文中插入_None答案時,插入到你的問題答案數組可能只是一個問題,它不知道它在上下文中 – Thewads
@sza我正在使用EF6候選版本。也許有一個問題...在此期間,因爲這可能是生產中所需的固定數據,所以我決定通過sql語句插入數據,以便我可以插入一種遷移的Up方法,並且我暫時將問題停放在 – Colin