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()
。