我想通过在更新行之前Posts
保留对表的整个记录更改来审核我的表。实体应将所有实体列与列一起存储。PostRevisions
Post
PostRevision
Post
RevisionId
我想用 Fluent NHibernate 映射它。PostRevision
实体应该镜像实体的属性Post
,但不必维护两个实体类和映射类。
我应该如何设计我的实体和映射来实现这一点?
后期编辑所需的伪代码
var post = _unitOfWork.CurrentSession.Get<Post>(id);
var postRevision = new PostRevision(post);
post.Content = "changed value"; // change some things here
_unitOfWork.CurrentSession.Save(post);
_unitOfWork.CurrentSession.Save(postRevision);
_unitOfWork.Commit();
PostRevision
作文类:
public class PostRevision
{
public virtual Guid Id { get; private set; }
public virtual Post Post { get; set; }
public PostRevision()
{
}
public PostRevision(Post post)
{
this.Post = post;
}
}
可能的流利映射:
public class PostRevisionMap : ClassMap<PostRevision>
{
public PostRevisionMap()
{
Id(x => x.Id);
Component(x => x.Post); // will something like this work?
}
}