繁体   English   中英

NHibernate中的行版本控制

[英]Row versioning in NHibernate

我正在开发一个社交应用程序,它将为用户提供创建消息墙的功能(例如在FB上)并邀请他们的朋友。 我的数据库中有一个表,其中包含墙壁及其版本(在TimeStamp中),意思是-它们的最后更新时间。

当有人更新墙时,该版本将更新,我希望用户收到此版本。 我正在使用NHibernate并将版本行定义为Version类型,但是我找不到一种方法来更新行并通过一次原子操作来接收新版本,以防止并发问题。

有没有办法做到这一点? 有解决这个问题的更好方法吗?

基本实体,

public abstract class AuditBase
{       
    private int? _rowVersion = 0;

    public virtual int? RowVersion
    {
        get { return _rowVersion; }
        set { _rowVersion = value; }
    }
}

实体,

    public partial class AXSERVICES : AuditBase
{}

您可以尝试DefaultUpdateEventListenerDefaultSaveEventListener

例如

    public class CustomSaveEventListener : DefaultSaveEventListener
{

    protected override object PerformSave(object entity, object id, IEntityPersister persister, bool useIdentityColumn, object anything, IEventSource source, bool requiresImmediateIdAccess)
    {
        ((AuditBase)entity).RowVersion = 0;
        object obj = base.PerformSave(entity, id, persister, useIdentityColumn, anything, source, requiresImmediateIdAccess); 

return obj;
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM