私はのような何かを行うことができます知っている:Can Castle ActiveRecordは選択的に怠け者でしょうか?
[BelongsTo("Foo", NotNull = true, Lazy = FetchWhen.Immediate)]
public Foo MyProperty
{
}
そして、このフィールドはかなり ゲッターがアクセスされたときよりも、参加して、すぐに取り込まれます。
私は、クエリを実行したときしかし、それがフェッチするかどうかを指定することが可能であるが、そのようなここのように、すぐに が行われます。
MyModel[] foo = MyModel.FindAllByProperty("User", someUser);
//Sometimes I want lazy, sometimes I don't..
.NET Entity Frameworkのは以下のような、Include
を使用してこれを行うことができます。
var foos = from f in context.FOO.Include("Bar") where f.id == 123 select f;
そして、私はRailsが:include
構文を使ってこの同じ機能を持っていると信じています。 城ActiveRecordに相当するものがあるのか、怠惰が常にモデルレベルで定義されているのか不思議です。ありがとう!!
優秀!私はこれらの両方を調べます。私はたくさんのHQLを使いますが、たいていは 'Blog.FindAll()'のようなことをします。 –