C# 这是ActiveRecordMediator的地方吗<;T>;?知道我不应该';Don’孩子不能提前来
在分层数据模型中,我有父对象和子对象。父项有字段[],每个子项也有相同的字段“计数”。。我们叫他们ChildField[]C# 这是ActiveRecordMediator的地方吗<;T>;?知道我不应该';Don’孩子不能提前来,c#,castle-activerecord,C#,Castle Activerecord,在分层数据模型中,我有父对象和子对象。父项有字段[],每个子项也有相同的字段“计数”。。我们叫他们ChildField[] public class Parent : ActiveRecordBase<Parent> { [HasMany] IList<Field> Fields {get; set;} [HasMany] IList<Child> Children {get; set;} } public class Child :
public class Parent : ActiveRecordBase<Parent>
{
[HasMany]
IList<Field> Fields {get; set;}
[HasMany]
IList<Child> Children {get; set;}
}
public class Child : ActiveRecordBase<Child>
{
[HasMany]
IList<ChildField> ChildFields {get; set;}
}
当提供了关于“调用上下文”的更多知识时,中介是否起到了“跳过”db调用的作用?这个问题有点让人困惑。。。ActiveRecordMediator只是一个NHibernate会话访问器。它不能跳过查询或类似的内容。它只执行您提供给它的查询 在NHibernate(当然还有ActiveRecord)中,您可以在每个查询的基础上使用惰性或急切抓取。也就是说,如果对于特定的查询,您知道您将需要这些子实体,那么您可以急切地获取它们。如果你不这样做,就让他们懒惰吧 这些文章是对惰性/急切加载的一个很好的介绍:
public void FetchByChild(Child child){
child.Parent.Fields.Count > 0
//Do the fetch
else
//return;
}