Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用NHibernate保留实体的早期版本_C#_Nhibernate_Fluent Nhibernate - Fatal编程技术网

C# 使用NHibernate保留实体的早期版本

C# 使用NHibernate保留实体的早期版本,c#,nhibernate,fluent-nhibernate,C#,Nhibernate,Fluent Nhibernate,我试图使我的应用程序保留实体的早期版本 例如,如果我有一本书,我希望能够在版本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或版本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 | Version…?

上的某种组合
Version
构造用于实现,而不是存储实体的以前版本


要实现完整版本控制,您必须使用单独的insert only
BookRevision
表,或者使用现在流行的CQRS/ES。

版本结构用于实现,而不是存储实体的以前版本


要实现完整版本控制,您必须使用单独的insert only
BookRevision
表,或者使用现在流行的CQRS/ES。

正如Anton Gogolev指出的那样,版本属性/列不是用于审核,而是用于并发控制


是NHibernate的第三方审核库,可能适合您的需要。

正如Anton Gogolev指出的那样-版本属性/列不是用于审核,而是用于并发控制


是NHibernate的第三方审核库,可能适合您的需要。

我想可能就是这样。有没有办法在图书模型中有一个版本col,并在ID | Version上有一个复合键,而不是有一个单独的表(BookRevision)呢?我想可能是这样的。有没有办法在图书模型中有一个版本col,并在ID | Version上有一个复合键,而不是有一个单独的表(BookRevision)?