我正在尝试启用我的应用程序来保留以前版本的实体。
例如,如果我有一个Book
我希望能够在版本1或版本5等处检索它...
public class Book
{
public virtual int ID {get; set;}
public virtual string Name {get; set;}
public virtual int Version {get; set;}
}
我像这样映射版本列:
Version(x=>x.Version);
这很有效。插入时,版本为1.
如果我通过id拉回该实体,编辑并保存,则版本增加到2。
我的问题是,如何保留以前的版本?
我怀疑在ID上有某种复合版本...?
答案 0 :(得分:3)
正如Anton Gogolev指出的那样 - 版本属性/列不是用于审计,而是用于并发控制。
NHibernate Envers是NHibernate的第三方审核库,可能符合您的需求。
答案 1 :(得分:0)
Version
构造用于实现optimistic concurrency control,而不是用于存储以前版本的实体。
要实现完整版本控制,您必须使用单独的仅插入BookRevision
表或使用现在时尚的CQRS / ES。