1
我編寫了用新安全密碼問題更新我的表(SecurityQuestionAnswer)的代碼,並將舊問題轉移到另一個表(SecurityQuestionAnswersArchives)。安全問題總數爲3.我能夠更新當前表,但是當我將相同的行添加到歷史記錄表時,它會顯示奇怪的數據:只添加兩條記錄而不是3條,並且數據也被複制。我的代碼如下:無法在Entity Framework中的存檔表中添加數據
if (oldQuestions.Any())
{
var oldquestionstoarchivelist = new List<SecurityQuestionAnswersArchives>();
var oldquestionstoarchive =new SecurityQuestionAnswersArchives();
for (int i = 0; i < 3; i++)
{
oldquestionstoarchive.Id = oldQuestions[i].Id;
oldquestionstoarchive.SecurityQuestionId = oldQuestions[i].SecurityQuestionId;
oldquestionstoarchive.Answer = oldQuestions[i].Answer;
oldquestionstoarchive.UpdateDate = oldQuestions[i].UpdateDate;
oldquestionstoarchive.IpAddress = oldQuestions[i].IpAddress;
oldquestionstoarchive.SecurityQuestion = oldQuestions[i].SecurityQuestion;
oldquestionstoarchive.User = oldQuestions[i].User;
oldquestionstoarchivelist.Add(oldquestionstoarchive);
}
user.SecurityQuestionAnswersArchives = oldquestionstoarchivelist;
//await Store.UpdateAsync(user);
_dbContext.ArchiveSecurityQuestionAnswers.AddRange(oldquestionstoarchivelist);
_dbContext.SecurityQuestionAnswers.RemoveRange(oldQuestions);
await _dbContext.SaveChangesAsync();
oldquestionstoarchivelist.Clear();
}
更新1
循環看起來不錯,它重複三次(0,1,2),預計。第一個問題與AddRange
功能,我通過一個列表,但它需要IEnumerable
輸入,我糾正它使用下面的代碼。
IEnumerable<SecurityQuestionAnswersArchives> finalArchiveses = oldquestionstoarchivelist;
_dbContext.ArchiveSecurityQuestionAnswers.AddRange(finalArchiveses);
另一個問題是重複的數據,我無法弄清楚問題出在哪裏。請幫我找出答案。
非常感謝您的幫助!