在NHibernate中删除子对象时,行被另一个事务更新或删除

时间:2014-05-13 20:32:04

标签: c# nhibernate fluent-nhibernate

这是我的模型设计:

App==>> List<promoCode> PromoCodes

应用程序可以有许多promoCode。 这是映射:

public class AppMap 
{
   HasMany(x => x.PromoCodes).Cascade.AllDeleteOrphan();
}

public class PromoCodeMap
{
    Map(x => x.Code);
    Map(x => x.AccessDate);
}

promoCode没有任何对其父级的引用我不需要它,它不应该。

但是当我尝试删除App的促销代码时,我收到了错误:Row was updated or deleted by another transaction指的是数据库中的促销代码。

以下是我清除和添加新promoCodes的方法:

public virtual void AddPromoCodes(IList<string> appPromoCodes)
    {
        this.promoCodes.Clear();

        foreach (string promoCode in appPromoCodes)
        {
            PromoCode prc = new PromoCode();
            prc.Code = promoCode;
            this.promoCodes.Add(prc);
        }
    }

有谁知道这里有什么不对吗?我只想删除旧代码并分配新代码!  我按照请求使用会话,但我没有任何线程。

0 个答案:

没有答案