【发布时间】:2014-01-23 21:13:52
【问题描述】:
我正在使用存储库,而我真正努力的一件事是尽可能地使事物解耦。因此,如果明天我们从关系数据库更改为其他东西,比如 NoSQL 之类的东西,我们很高兴,我们只需要更改我们的 DAL。
我一直在尝试找出如何在我的 WebAPI 控制器中实现 SaveChanges 方法,而无需使用 EFContextProvider。然后我找到了 Breeze NoDb 示例,但是此示例使用存储库中的 Breeze ContextProvider。这让我很困扰,因为 Breeze 是一个 JS 库,所以它与我的应用程序的呈现有关。在这种情况下,让存储库使用 Breeze 的组件会将 DAL 和演示文稿耦合在一起,这是我不想做的事情。
再次搜索如何在没有 EF 的情况下实现 SaveChanges 我发现 this 问题有一个很好的答案,告诉如何将 SaveBundle 转换为 SaveMap,然后告诉使用它来实现保存逻辑。但是我被困在这种方法中,因为 SaveMap 的条目只提供了一个 Type 对象和 EntityInfo,所以我看不到如何在我的存储库中使用它。
那么,如何在不引用 EFContextProvider 且不将存储库与 ContextProvider 耦合的情况下处理 SaveChanges?
【问题讨论】:
标签: c# .net entity-framework repository-pattern breeze