【问题标题】:Why ActiveRecordHooksBase.OnUpdate does not work in cascaded mode?为什么 ActiveRecordHooksBase.OnUpdate 在级联模式下不起作用?
【发布时间】:2010-07-13 14:37:58
【问题描述】:

假设我们有两个实体BlogPost,其中Blog 有很多Posts。 Post 通过Blog 间接保存。当我在Post 中覆盖OnUpdate 时,它会导致保存具有空BlogPosts。另一方面,在Post 中覆盖OnUpdate 会导致无法正确保存它。其他人have had same problem

代码是:

protected override void OnUpdate()
{
    UserModified = "UserModified";
    DateModified = DateTime.Now;

    base.OnUpdate();
}

【问题讨论】:

    标签: c# orm castle-activerecord castle


    【解决方案1】:

    自己找到了解决方法。如果明确设置儿童专利,它将起作用。考虑以下代码:

    [ActiveRecord(Lazy = true)]
    public class Lookup : ActiveRecordBase<Lookup>
    {
        [HasMany(typeof(LookupItem), Cascade = ManyRelationCascadeEnum.All)]
        public virtual IList Items { set; get; }
    
        //other properties...
    }
    
    
    [ActiveRecord(Lazy = true)]
    public class LookupItem : ActiveRecordBase<LookupItem>
    {
        [BelongsTo("Lookup_id")]
        public virtual Lookup ContainerLookup { set; get; }
    
        //other properties...
    }
    
    void SaveLookup()
    {
        Lookup lookup = GetLookup();
        LookupItem lookupItem = new LookupItem()
        {
            Title = LookupItemName,
            ContainerLookup = lookup
        };
        lookup.Items.Add(lookupItem);
        lookup.Save();
    }
    

    【讨论】:

      猜你喜欢
      • 2017-09-23
      • 1970-01-01
      • 2012-10-08
      • 1970-01-01
      • 1970-01-01
      • 2020-11-28
      • 2011-07-18
      • 2019-05-20
      • 2015-04-05
      相关资源
      最近更新 更多