0

我知道我可以做类似的事情:

[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 Entity Framework 可以使用 来执行此操作Include,例如:

var foos = from f in context.FOO.Include("Bar") where f.id == 123 select f;

:include而且我相信 Rails 使用语法具有相同的功能。我想知道 Castle ActiveRecord 是否有等价物,或者是否总是在模型级别定义惰性。谢谢!!

4

1 回答 1

1

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

为每个查询定义预取取决于查询 API。例如,HQL 使用 ' join fetch ' 关键字,使用 Criteria APISetFetchMode等。

于 2012-05-01T15:11:33.983 回答