问题标签 [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.
security - 存储库模式和分层。我在哪里应用安全性?
我正在尽我所能设计我的 web 应用程序,并在层之间进行良好的分离。我正在使用存储库模式,因此有一个由我的 Web 前端调用的 ObjectService 调用的 SQLObjectRepository。
在我的对象模型中,用户与一个或多个区域相关联,这些区域应该过滤他们应该有权访问的对象。我的问题是,当我查询对象时,我是将代码放在服务中以设置对象的权限,还是该代码应该在存储库中?如果用户是 2 个区域的成员,我应该将用户作为参数传递给服务,还是应该将用户的区域传递给服务?
design-patterns - 应该有多少种类型来实现存储库模式?
我正在尝试在存储图片的实例中使用存储库模式。
我所做的是将实际图片保存在磁盘上的目录中,但保存有关图片的数据以及哪些图片与数据库中的哪些对象一起使用。我想知道是否应该使用 2 个接口进行存储,例如IStorePicRepo
和IStorePicDataRepo
或有 1 个接口并在 1 个类中实现它。在我看来,它不应该由同一个类实现,因为我们正在处理 2 种不同的存储机制。
有什么想法吗?
asp.net-mvc - MVC 存储库模式:创建模型类
查看 Conery 的店面,我不明白他为什么使用 Linqs 自动生成的类(即 Order 类),然后他定义了另一个 Order 类,它不是部分类。何时使用存储库模式应该手动创建类,而完全忽略 Datacontext?
c# - 使用依赖注入的存储库和专用存储库的装饰器链接
现在,我正试图找出一种更聪明地做事的方法,在此过程中,我设法做的就是在一天内使用一整瓶 excedrin。
假设我有一个像这样的名为 IRepository 的接口。
并假设我有一个像
现在,一切都很好,我可以对存储库执行所有基本操作以支持所有 CRUD 功能,但我可能需要专门的操作,所以假设我有一个这样的界面:
和这样的实现:
好的,这就是基本设置,现在我还想做一件事。我想要透明地进行日志记录和事务以及类似的事情。所以我想做的是使用像 Castle Windsor 或 StructureMap 这样的依赖注入框架,这样当我请求 IRepository 时,我会用 LoggingRepository 和 TransactionRepository 包装它,这两个都实现了 IRepository。
所以,我想做的是这样的:
并让它返回一个包含在 Logging 和 Transaction 装饰器中的用户存储库,但我想不出一种可行的方法。我能想到让它工作的唯一方法是像这样实现 UserRepository:
这意味着我们将使用依赖注入来创建一个修饰的存储库并将其传递给 UserRepository 的构造函数,然后将其用作我们对其运行操作的存储库。这会起作用,但我仍然认为它不是理想的。
所以,我的问题是,我是对的,这是做到这一点的唯一方法,还是我没有正确理解这一点,或者只是错过了一些东西。另外,如果你以前遇到过这个问题,你是如何解决这个问题的?
asp.net-mvc - 存储库模式 - MVC 店面
一直在查看 MVC 店面,发现 IQueryable 是从存储库类返回的。想知道您是否不使用 LINQ,返回该对象是否有意义?在 LINQ 的情况下,由于延迟执行,因此在服务层中添加过滤是有意义的,但如果您不使用 LINQ,则在许多情况下您会希望在 DB 中进行过滤。在这种情况下,我是否只需将执行过滤的方法添加到存储库?如果我这样做了,服务层真的有用吗?
asp.net-mvc - MVC:存储库和服务
我对在存储库中定义的内容以及留给服务的内容的限制感到困惑。存储库应该只创建与数据库中的表匹配的简单实体,还是可以创建具有这些实体组合的复杂自定义对象?
换句话说:服务是否应该在存储库上进行各种 Linq to SQL 查询?还是应该在存储库中预定义所有查询,而业务逻辑只是决定调用哪个方法?
asp.net-mvc - 将 Using Blocks 放入存储库有什么问题?
我在存储库的每种方法中都使用了块。如果我想交叉引用方法,初始化另一个 Datacontext 似乎违反最佳实践我做错了什么?如果我在类中声明一个 Datacontext 而不是在方法中使用块,我不会失去处置的权力吗?
service - 此实体存储库服务示例是否适合领域驱动设计?
我想知道您是否发现以下模式在域驱动设计中有意义。
领域层由模型和存储库组成。应用层由处理来自用户界面或模型-视图-控制器模式中控制器的查询的服务组成。
结构细节:
特别是,将方法移动到 Phrase 实体类中是否有意义?那样的话,怎么称呼?
编辑:
上面的示例在 moffdub 的回答和 Adeel Ansari 的评论后进行了修改。更改突出显示。
我想问一下添加的 IPhraseRepository.GetPhrase(phraseId) 以及如何包含它?
asp.net-mvc - Blog Architecture Design, using MVC and DDD
I'm designing a blog architecture on asp.net mvc. Lets say i only have 2 entities: post and comment. do i need a controller and a repository for each one? how goes the mechanism for displaying a post with it's comments? do the post controller looks in the posts repository for the post, then asks the comment controller to retrieve all the comments connected to this post, gets them from the comments controller and passes them to the view? or maybe i should write a service which is responsible for querying both repositories and returning the results to the posts controller, which passes them to the view?