C# Castle ActiveRecord可以选择性地懒惰吗?

C# Castle ActiveRecord可以选择性地懒惰吗?,c#,.net,nhibernate,castle-activerecord,C#,.net,Nhibernate,Castle Activerecord,我知道我可以做一些事情,比如: [BelongsTo("Foo", NotNull = true, Lazy = FetchWhen.Immediate)] public Foo MyProperty { } 该字段将通过联接立即填充,而不是在 getter被访问 但是,是否可以指定是否完成提取 运行查询时立即执行,例如: MyModel[] foo = MyModel.FindAllByProperty("User", someUser); //Sometimes I want lazy,

我知道我可以做一些事情,比如:

[BelongsTo("Foo", NotNull = true, Lazy = FetchWhen.Immediate)]
public Foo MyProperty
{

}
该字段将通过联接立即填充,而不是在 getter被访问

但是,是否可以指定是否完成提取 运行查询时立即执行,例如:

MyModel[] foo = MyModel.FindAllByProperty("User", someUser);
//Sometimes I want lazy, sometimes I don't..
.NET实体框架可以使用
Include
,例如:

var foos = from f in context.FOO.Include("Bar") where f.id == 123 select f;
我相信Rails使用
:include
语法也具有相同的功能。我想知道
Castle ActiveRecord有一个等价项,或者如果惰性总是在模型级别定义的话。谢谢

是的,它可以。推荐的方法是在默认情况下使用惰性映射,然后急切地获取每个案例所需的内容


定义每个查询的急取取决于查询API。例如,HQL使用“”关键字,以及您使用的标准API等。

非常好!我会调查这两件事。我使用了很多HQL,但大多数情况下我只是做一些事情,比如
Blog.FindAll()