私は MVC と Entity Framework を初めて使用し、変更を追跡しようとしています。ここに私のコードスニペットがあります:
string historyText = "<ul>";
ICollection<LookUp> oldPositions = fromDB.LookUps;
fromDB.LookUps.Clear();
IEnumerable<LookUp> allPositionTypes = lookUpRepository.GetByLookupTypeId(24);
foreach (var interest in chkPositionType)
{
fromDB.LookUps.Add(allPositionTypes.Where(x => x.LookUpID == Convert.ToInt32(interest)).Single());
if (!oldPositions.Contains(allPositionTypes.Where(x => x.LookUpID == Convert.ToInt32(interest)).Single()))
historyText += "<li>" + "Position Type : <span class='history-old'> </span><span class='history-separator'>|</span><span class='history-new'>" + lkupRepo.GetByID(Convert.ToInt32(interest)).Name + "</span></li>";
}
historyText += "</ul>";
何らかの理由で、ルックアップをクリアするとすぐに、oldPositions も null に設定されます。また、新しく追加したものと、削除されたが再度追加されなかったものも知りたいです。したがって、基本的に変更を追跡する必要があります。
別の方法はありますか?そのほうがよければ、私もそれを採用できます。