Я хочу провести аудит моей 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?
}
}