1

У меня есть Task объекта с различными навигационными свойствами, в том числе Comment лица:Как сохранить историю изменения субъекта в

public Comment { 
    public int ID { get; set; } 
    public string Title { get; set; } 
    public string Description { get; set; } 
    public DateTime CreateDate { get; set; } 
    public DateTime LastEditedDate { get; set; } 
    public virtual User User { get; set; } 
} 

Комментарий может быть отредактирован, и я хочу, чтобы сохранить историю всех таких изменений. Подумайте о том, как Stackoverflow позволяет редактировать ваши вопросы/комментарии, но сохраняет историю изменений.

Сохранение истории означает большую сложность, и ее становится сложнее поддерживать. Мои варианты:

  • добавить свойства, такие как public virtual ICollection<string> DescriptionHistory { get; set; }, и аналогичный один для Title, User, EditDate и т.д. Он получает из рук очень быстро.

  • сохранить свойства Title, Description и т. Д. Как строки, но сделать их строками CSV и всеми этими изменениями в меньшем наборе свойств. Это означает большую обработку, но объект проще. Проблема в том, что становится сложным связать один фрагмент CSV с соответствующим из другого свойства, например, исторический заголовок должен соответствовать его историческому описанию и дате.

  • делать то же самое, что и текущий набор свойств, и еще один набор нулевых значений, например TitleHistory, DescriptionHistory и т. Д., Которые представляют собой строки CSV более старых версий, и поэтому это становится сложным, когда вы имеете дело с историческими материалами ,

Также есть проблемы вокруг хранения пользователя, если только я не использую CSV идентификаторов, а не сущности.

Каков наилучший подход к этой проблеме? Существуют различные методы, такие как sprocs и "insert only" tables, но я использую Entity Framework 5 и поэтому предпочитаю решение, которое использует технологию, которую я уже использую.

ответ

0

Я решил использовать таблицу «только вставить». Жаль, что это нелегко сделать с EF5.

 Смежные вопросы

  • Нет связанных вопросов^_^