0

我在这里有另一个关于工作单元 (UoW)存储库模式的问题。所以我喜欢TempHire解决方案显示的 UoW 存储库,非常好,我理解这一点。但是,当您传入请求实体成为父实体.expand.select脱离父实体的查询时,EFContextProvider 是调用该操作的存储库,还是直接转到Context. 我稍微研究了一下,我发现EFContextProvider有它自己的上下文实例。这让我很担心,因为我已经使用存储库模式抽象了一些东西,但是我认为在执行这些嵌套操作时不会应用它们。谁能帮我确认一下?如果这是正确的,是否有任何设置,以便将转到我的存储库,它模仿DbContext, 用于这些嵌套调用?

谢谢伙计们和女孩们。保持微风

4

2 回答 2

1

在 TempHire 中实现的存储库为任何查询返回基本 IQueryable。一个 .expand 或 .select 在执行查询之前被简单地附加到基本 IQueryable 中。EFContextProvider 从不调用存储库。WebAPI 控制器调用存储库以获取基本 IQueryable,存储库从 EFContextProvider 内部的 DbContext 获取它。在最终的 IQueryable 返回到执行它的 Breeze.NET 之前,存储库可以进一步附加到 IQueryable 和 WebApi 控制器。换句话说,无论您按原样执行查询还是对其执行 .expand 或 .select,您在存储库中返回基本 IQueryable 的所有逻辑都将适用。

于 2013-08-12T23:18:38.453 回答
0

EFContextProvider 为微风.js 提供了两件事 - 元数据和 SaveChanges。查询转到 UoW 存储库(请查看https://github.com/IdeaBlade/Breeze/blob/master/Samples/TempHire/TempHire/Controllers/ResourceMgtController.cs)。

于 2013-08-10T22:35:20.393 回答