2010-07-12 2 views
0

Предположим, что у нас есть два объекта Blog и Post, что Blog имеет много Post s. Post сохраняется косвенно через Blog. Когда я переопределяю OnUpdate в Post, он вызывает сохранение Post s с нулевым Blog. С другой стороны, переопределение OnUpdate в Post вызывает неправильное сохранение. Кто-то еще have had same problem.Почему ActiveRecordHooksBase.OnUpdate не работает в каскадном режиме?

Код:

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

    base.OnUpdate(); 
} 

ответ

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