0

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

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

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

4

1 回答 1

0

基础实体,

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

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

该实体,

    public partial class AXSERVICES : AuditBase
{}

你可以DefaultUpdateEventListener试试DefaultSaveEventListener

例如

    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;
        }
    }
于 2013-05-10T11:03:55.140 回答