草庐IT

存储库

全部标签

c# - MVC 4 Autofac 和通用存储库模式

我在我的MVC4应用程序中使用工作单元和通用存储库模式。我试图解决的问题是为我系统中的每个实体创建存储库stub。为了利用AutofacIoc,我必须为每个实体创建一个存储库类和接口(interface),以便我可以在Autofac中注册它。应用启动...builder.RegisterType().As().InstancePerHttpRequest();存储库类publicclassSchoolDetailRepository:RepositoryBase,ISchoolDetailRepository{publicSchoolDetailRepository(IDatabase

c# - 存储库模式是否遵循 SOLID 原则?

我正在对SOLIDprincipal进行一些研究,发现了Repository模式实现中的一些问题。我将逐一解释,如有错误请指正。问题1存储库模式打破了单一职责原则(S)假设我们有一个定义为的接口(interface)publicinterfaceIRepositorywhereT:IEntity{IEnumerableList{get;}voidAdd(Tentity);voidDelete(Tentity);voidUpdate(Tentity);TFindById(intId);}显然它违反了单一责任原则,因为当我们实现这个接口(interface)时,在一个类中我们同时放置了Co

c# - 存储库、管道、业务逻辑和域模型——我如何将它们组合在一起?

我在设计N层应用程序时遇到了一个难题,您可能有解决方案。表示层是MVC。我的ORM是使用LinqToSQL执行的-它是一个为存储库提供服务的独立项目。每个存储库都有一个接口(interface)和至少1个具体实现。Repositories有以下方法:FindAll(),Save(Tentity),Delete(intid)FindAll()返回某种类型的IQueryable,这意味着它返回我可以应用过滤器的查询。ORM映射是使用数据库优先方法执行的,首先创建表,然后由SQLMetal生成类。我添加了一个与存储库一起使用的管道层。它将进一步的过滤器应用于查询。例如。OrderReposi

c# - 在存储库模式中使用接口(interface)优于抽象类的优势?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:InterfacevsBaseclass使用接口(interface)实现的存储库模式很常见publicinterfaceIFooRepository{FooGetFoo(intID);}publicclassSQLFooRepository:IFooRepository{//CallDBandgetafoopublicFooGetFoo(intID){}}publicclassTestFooRepository:IFooRepository{//Getfoofromin-memorystorefortest

c# - 如何对使用 Entity Framework 的存储库模式进行单元测试?

我目前正在尝试对通过EntityFramework创建的存储库进行单元测试:我想要发生的是在不实际发送/连接到实际数据库的情况下测试存储库,我希望在不使用任何模拟框架的情况下进行此操作。目前我的测试是将数据发送到数据库,我想做的是测试添加/删除等方法而不将实际数据发送到数据库,因为它仅用于测试。这是存储库:namespaceAbstractFactory.Repository{usingSystem.Collections.Generic;usingSystem.Data.Entity;usingSystem.Linq;//////Thisclassservesasthestructu

c# - Entity Framework + 存储库 + 工作单元

我正在考虑使用EF4开始一个新项目并浏览了一些文章,我发现了一些关于EF的文章以及存储库模式和工作单元(http://tdryan.blogspot.com/2011/03/another-entity-framework-4-repository_15.html和http://blogs.msdn.com/b/adonet/archive/2009/06/16/using-repository-and-unit-of-work-patterns-with-entity-framework-4-0.aspx)我使用的是第一个(第1部分、第2部分和第3部分)。它们非常相似。我是这种情况下

c# - 存储库模式中的 IQueryable 与 IEnumerable,延迟加载

我读过一些文章,指出IEnumerable用于模拟存储过程或限制您的数据库。失去了对外部提供商的延迟加载能力。IQueryable为开发人员提供了更大的灵active。那里有延迟加载。就性能而言,两者都消耗大量性能..那么哪个更可取? 最佳答案 从RepositoryPattern的角度,可以这样想:如果您想一次性将整个列表传递给客户端,请使用预加载IEnumerable。他们仍然可以添加linq子句,但客户端不会从延迟执行中受益。如果您希望通过允许客户端添加自己的linq子句将延迟查询功能扩展到客户端,请使用延迟加载IQuerya

c# - 存储库模式实现

似乎我找到的每个存储库模式示例的实现都在某种程度上有所不同。下面是我主要找的两个例子。interfaceIProductRepository{IQueryableFindAll();}通常还有另一层与存储库对话并调用FindAll()方法并执行任何操作,例如查找以字母“s”开头的产品或获取特定类别中的产品。另一个我发现很多的例子将所有的查找方法放入存储库interfaceIProductRepository{IEnumerableGetProductsInCategory(intcategoryId);IEnumerableGetProductsStartingWith(stringl

c# - 存储库模式和多个相关的核心实体或业务对象——一个存储库还是多个?

我正在考虑实现存储库模式(因为我想出的是90%的实现),并且遇到了一个设计问题-我有两个或更多核心业务对象(例如,业务和CRM应用中的联系人),BO可以是高度相关的,也可以是完全不相关的。在这种情况下,我应该实现一个存储库(例如CrmRepository,带有.addBusiness()、.addContact()等)还是多个存储库(BusinessRepository、ContactRepository,每个存储库都有自己的.add()、.delete()等).在这种情况下,最佳做法是什么?底层DAL是EF4。问候哞哞 最佳答案

javascript - WebStorm 没有本地存储库

我一直在从事一个完全适用于jsfiddle.net的项目。但是,当我尝试在webStorm中运行这个项目时,出现了两个错误。首先:第二个:之前,我在这里发布我的问题,我在stackoverflow上搜索但找不到任何解决方案。我已经做了:图书馆:和我的html代码:SuperMario!虽然我在html中加载了库并成功定义了源脚本,但为什么会出现这些错误?我应该怎么办? 最佳答案 您需要选择此文件链接并单击Alt+Enter将此文件下载到您的库中。来自WebStorm的屏幕: 关于java