C# 如何保存实体';改变历史
我有一个C# 如何保存实体';改变历史,c#,database,entity-framework,database-design,entity-framework-5,C#,Database,Entity Framework,Database Design,Entity Framework 5,我有一个任务实体,具有各种导航属性,包括注释实体: 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
任务
实体,具有各种导航属性,包括注释
实体:
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 description{get;set;}
、Title
、User
等。它很快就会失控EditDate
- 将标题、描述等属性保留为字符串,但将其设置为CSV字符串,并将所有更改填充到较少的属性集中。这意味着更多的处理,但实体更简单。问题在于,将一个CSV片段与来自不同属性的相应片段相关联变得很棘手,例如历史标题必须与其历史描述和日期相匹配
- 两者都有,拥有当前的一组属性和另一组空值,如
,TitleHistory
,等等,它们是旧版本的CSV字符串,因此只有在处理历史内容时才会变得复杂DescriptionHistory