时间:2010-07-12 06:57:15

标签: c# orm castle-activerecord castle

假设我们有两个实体BlogPostBlog有很多Post个。 Post通过Blog间接保存OnUpdate。当我覆盖Post中的Post时,会导致保存BlogOnUpdate。另一方面,在Post中覆盖protected override void OnUpdate() { UserModified = "UserModified"; DateModified = DateTime.Now; base.OnUpdate(); } 会导致无法正确保存。其他人have had same problem

代码是:

{{1}}

1 个答案:

答案 0 :(得分:0)

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

[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();
}