问题标签 [repository-pattern]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2050 浏览

wpf - 如何通过 MVVM (WPF) 应用程序中的存储库模式调用我的服务?

我已经成功创建了一个基本上具有接口、服务和数据访问的 asp mvc 应用程序 - 又名存储库模式..

从 MVVM 结构化 WPF 应用程序调用我的服务(我的存储库模式)的最佳方式是什么。

从我所看到的.. 在 wpf 的模型中,我假设我从模型中调用我的服务(存储库模式),然后将数据返回到我的视图模型以显示在视图上?

这个模型应该很薄,即只有很少的代码,只需调用服务..并将数据返回给视图模型进行处理,还是模型应该调用存储库服务并在模型中进行处理,然后再返回到视图模型?

我有点困惑如何在我正在设计的新 WPF MMVM 应用程序领域中使用我的 WORKING 存储库模式......

有任何想法吗?

谢谢

0 投票
2 回答
4420 浏览

c# - 即使抛出异常,HttpContext.Current 是否也会被释放?

我问的原因是因为该HttpContext.Current.Items集合似乎是放置IDisposable对象的好地方,例如 aDataContext以便存储库可以透明地访问它,而不必将与特定 ORM 技术相关的任何依赖项注入到存储库中。这也将允许存储库决定是否参与UnitOfWork或承担实际持久化任何更改的额外责任。

例如:

这页纸:

存储库:

当然,如果集合DataContext中没有它,我会检查空值并执行获取 a 所需的步骤。HttpContext.Current.Items

所以,回到我最初的问题,给出上面的代码:即使抛出异常,它是否会与它的 Items 集合中包含的任何对象一起被处置?HttpContext.Current

0 投票
1 回答
1443 浏览

repository-pattern - 在实现存储库模式时,查找值/表应该获得自己的存储库吗?

我正在基于BISDM的修改版本为多个数据库实体创建 RESTful 服务。其中一些实体具有关联的查找表,如下所示:

修改后的 BISDM 模式的片段

我决定使用存储库模式在数据持久性/检索之间提供清晰的分离;但是,我不确定在存储库中应该如何表示查找(而不是实体)。

查找应该有自己的存储库接口,与关联实体“共享”一个,还是应该有一个通用的 ILookupRepository 接口?

目前,这些查找是只读的;但是,有时我们可能希望通过服务编辑查找。

顺便说一句,这个问题与另一个有关查找表和 RESTful Web 服务的问题有关。

0 投票
4 回答
774 浏览

c# - 使用 linq 的 Reposity 模式

当我使用两个不同的生成的 linq 代码时,如何实现 Rob Conery 在 [MVC Storefront][1] 中显示的所谓“存储库模式”?我是否需要实现一个真正的存储库模式,正如 Fredrik Normen 在存储库模式有什么目的中所讨论的那样?? 问题是我想从我的“存储库”传递一些 LINQ 提供的不错的特性,以便我以后可以使用它,所以如果不需要,我不想像 Fredrik 讨论的那样实现真正的存储库模式。

现在到我的问题。我已经下载了 [dblinq][3],它是 MySql、Oracle 和 PostgreSQL 的 Linq 提供程序。在我的项目中,我现在已经为 MySQL 和 SQL(microsoft) 生成了 LINQ 代码。问题是它们都需要生成具有相同名称但内容有所不同的类。我可以使用命名空间或其他东西以某种方式实现它,以便我可以同时使用它们,就像“存储库模式”的想法一样?语言表 SQl 的示例

MySQL

0 投票
3 回答
2012 浏览

repository-pattern - 从存储库调用存储库

我有两个存储库目录和用户,我有一种情况需要从用户存储库调用目录存储库中的方法,这是一种好的做法还是有更好的方法?

0 投票
2 回答
458 浏览

asp.net-mvc - ASP.NET MVC - 模型决定:如何设计它?

这涉及具有非常通用数据库的企业应用程序(所有对象都使用数据库中的数据和国际化/全球化/本地化来识别)。

  • 为存储库模式制作一个模型,然后制作(生成 1:1)另一个数据库访问模型(LINQ2SQL 或 EF)并将后者用作存储库模型数据访问层?
  • 直接使用 L2S/EF/NHibernate 模型,将模型映射到 DB 并打开持久层?

当直接在双模型环境中使用 L2S/EF 模型时,这种双模型想法(存储库模式)是否会弹出问题,使动态可堆叠 LINQ 搜索查询成为可能?

请指教。

0 投票
2 回答
1604 浏览

asp.net-mvc - Asp.net Mvc:使用 LINQ to SQL 创建模型类

我正在尝试学习 Asp.net Mvc,所以我正在尝试 教程。

他们讨论了存储库模式以及如何轻松更改为另一种数据访问技术,而不仅仅是直接调用 Linq to Sql。

在控制器类中使用 LINQ to SQL 使得将来很难切换数据访问技术。例如,您可能决定从使用 Microsoft LINQ to SQL 切换到使用 Microsoft Entity Framework 作为数据访问技术。在这种情况下,您需要重写应用程序中访问数据库的每个控制器。

注意:在阅读本教程之前,我从来没有真正理解过界面是如何工作的,而且还不是 100% 清楚。我现在把它看作是一个类的某种“模板”。

在成功使用 Linq to Sql 之后,我认为尝试 Ado.net Entity Framework 会很好,因为我已经阅读了很多关于此的内容。他们说使用存储库模式可以轻松切换,所以我想我会测试一下。

我的问题是:我应该怎么做才能更改为 Ado.net EF?

这是我认为我应该做的。

  • 添加 Movie.edmx 文件并配置它(添加我的电影表)。
  • 编写一个基于 IMovieRepository 的新类,并可能将其称为 MovieEFRepository。
  • 将控制器构造函数中的参数更改为 MovieEFRepository。这是我觉得奇怪的第一件事,因为在教程中他们说如果您更改为其他数据源,不使用存储库将迫使您更改所有控制器。既然我指定了 MovieRepository 类,我不需要更改每个控制器吗?
  • 我认为我需要做的最后一个调整是更改视图。因为它使用的是由 Linq to Sql 设计器创建的 Product 类。我不确定我将如何做到这一点。我想我应该使用一些不依赖于 dbml 文件的对象?

如果我对 Asp.net Mvc 的看法有点简单,请原谅我。我是一名对 Asp.net 网络开发非常感兴趣的网页设计师。

0 投票
1 回答
755 浏览

repository-pattern - UnitOfWork 模式和原子操作

我不能 100% 确定我已经正确地实现了我的 Repository 和 UnitOfWork 模式,但是我看不出它还能如何工作。

例如,我有两个对象,Apple 和 Orange。

Apple 通过 OrangeID 加入 Orange,如下所示:

我想创建一个新的 Apple 和一个新的 Orange,并且我想适当地设置 ID 链接。但我有一个问题。在将 Orange 保存到数据库之前,我不会知道 OrangeID。

所以这意味着我将拥有以下内容:

这不是原子操作,除非我有一个位于上述之外的事务。但我认为这是 UnitOfWork 应该处理的?或者我的 UnitOfWork.Commit() 在写入数据库时​​应该分配适当的值吗?

任何帮助/提示将不胜感激,谢谢邓肯

0 投票
1 回答
1998 浏览

php - 聚合和存储库。如何确定聚合体?

我最近一直在研究存储库模式,将其作为一种将所有持久性细节隐藏在涉及客户端代码的地毯下的方法。在阅读时,似乎存储库是/可以[通常?]负责聚合,而不仅仅是直接的类。

这对我来说很有意义,因为您可以有一个定义Posts的类和另一个定义Comments的类。这使得聚合成为理想的候选者,因为两者非常密切相关。但是,我将如何表示Users类及其与他或她的Posts的关系?

将用户与帖子/评论聚合在一起是否有意义,或者将用户单独保留并通过良好的老式参考进行关联?

我曾尝试使用 Google 自己寻找答案,但我找到的很多示例都是独立的。即,Posts/Comment或者OrderOrderLine等。我找不到任何可以显示其他相关类如何组合在一起的东西。

我没有将它应用于任何特定的东西,尽管 PHP 或 Java/C# 可能是我希望使用这些想法的领域。无论如何,在我逃跑并创造一个怪物之前,我只是在探索并试图弄清楚其中的一些想法和概念。:)

感谢您的时间。

0 投票
5 回答
2432 浏览

c# - 使用 EntityFramework 的模式?

使用实体框架的替代模式是什么?

我知道的一些是:

  1. “普通”EntityFramework - 又名 Unity of Work

    p>

  2. 存储库模式

    p>

  3. 还有什么 ?
  4. ?