Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 这是ActiveRecordMediator的地方吗<;T>;?知道我不应该';Don’孩子不能提前来_C#_Castle Activerecord - Fatal编程技术网

C# 这是ActiveRecordMediator的地方吗<;T>;?知道我不应该';Don’孩子不能提前来

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 :

在分层数据模型中,我有父对象和子对象。父项有字段[],每个子项也有相同的字段“计数”。。我们叫他们ChildField[]

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