EF 6 相当于 NHibernate ToFuture
EF 6 equivalent of NHibernate ToFuture
目前我对 ORM 的经验仅限于 NHibernate。
但是,我刚刚开始使用 EF6 的新项目。
在 Linq to NHibernate 中,我们能够像这样在单次往返中延迟查询执行和水化多个查询:
// apples will be an IEnumerable<Apple> and won't be hydrated until it is enumerated
// or another query is hydrated
var apples = session.Query<Apple>().Where(a => a.Type = "red").ToFuture();
// oranges will be an IEnumerable<Orange> and won't be hydrated until it is enumerated
// or another query is hydrated
var oranges = session.Query<Orange>().Where(a => a.Type = "small").ToFuture();
// this will hydrate all three queries
var grapes = session.Query<Grape>().Where(a => a.Type = "red").ToFuture().ToList();
有人发布了类似的 question 但关于 EF4。我想知道 EF6 中是否引入了 ToFuture
功能?
ToFuture
未作为核心功能出现在 EF6 中。
但是,一个名为 EntityFramework.Extended 的开源项目为 EF 提供了一些额外的功能,包括 Futures。
EF 扩展语法是 Future
。
nuget package 似乎支持 EF 6。
目前我对 ORM 的经验仅限于 NHibernate。
但是,我刚刚开始使用 EF6 的新项目。
在 Linq to NHibernate 中,我们能够像这样在单次往返中延迟查询执行和水化多个查询:
// apples will be an IEnumerable<Apple> and won't be hydrated until it is enumerated
// or another query is hydrated
var apples = session.Query<Apple>().Where(a => a.Type = "red").ToFuture();
// oranges will be an IEnumerable<Orange> and won't be hydrated until it is enumerated
// or another query is hydrated
var oranges = session.Query<Orange>().Where(a => a.Type = "small").ToFuture();
// this will hydrate all three queries
var grapes = session.Query<Grape>().Where(a => a.Type = "red").ToFuture().ToList();
有人发布了类似的 question 但关于 EF4。我想知道 EF6 中是否引入了 ToFuture
功能?
ToFuture
未作为核心功能出现在 EF6 中。
但是,一个名为 EntityFramework.Extended 的开源项目为 EF 提供了一些额外的功能,包括 Futures。
EF 扩展语法是 Future
。
nuget package 似乎支持 EF 6。