repository-pattern相关内容

在没有存储库的实体框架中的可重用查询。怎么样?

让我说,我得出的结论是(经过大量试验)存储库&使用Entity Framework时的工作单元是错误,错误,错误和这说明了原因很好。 但是我真的很讨厌那些嵌入式查询。问题是,如果我反对使用存储库等,该将它们放在哪里? (请提供简洁的答案,示例值得赞赏)。 我刚刚取消了两个项目,其中包含我的存储库,工作单元以及与数百个接口文件,因为回报无处可寻。我认为很多人,包括我自己在内,都跳上了Re ..
发布时间:2020-10-29 21:51:50 其他开发

在我的EF实现通用存储库中找不到.Include()方法

我正在使用通用存储库从更高级别包装DbContext和DbSet类。 但是,在某些查询中,我需要使用“ .Include()”方法来包含导航属性。但是我无法在恢复IQueryable的存储库方法中找到这些方法 像 this.repository.GetQuery() 这没有包含方法,尽管我可以在这里使用.ToList() ..
发布时间:2020-10-29 21:31:44 其他开发

为什么使用存储库模式或请向我解释?

我正在学习存储库模式,正在阅读使用Entity Framework 4.1和代码优先 和通用存储库模式-实体框架,ASP.NET MVC和单元测试三角形 关于它们如何通过以下方式实现存储库模式实体框架。 说 •从上层隐藏EF •使代码可测试性更好 使代码可测试性更好,但是为什么要在上层隐藏EF? p> 看一下它们的实现,似乎只是用通用方法包装实体框架来查询实体框架 ..
发布时间:2020-10-29 21:06:30 C#/.NET

实体框架:如何在提交之前检查值是否存在

我正在使用存储库模式。 我有一个使用服务提交的“国家/地区”存储库。我应该在哪里检查数据库中是否已经存在该国家/地区,是否抛出异常? 是否可以在一个数据库调用中执行此操作? (检查并插入,如果不存在)?如果可能,可以在服务层中完成吗? (如果您建议我在该位置进行检查)。 解决方案 由于多用户并发,您不能 SELECT 然后 INSERT 并保证没有问题。因此,@ Coding ..
发布时间:2020-10-29 20:41:43 其他开发

应该在存储库或服务层中编写复杂的查询吗?

我正计划将数据访问层迁移到使用存储库模式和工作单元。 我确实知道存储库将帮助我更改持久性存储(数据库,集合...等)和EF等技术轻松地连接到MongoDB。因此,我注意到了实现存储库的一些关键点,例如: 返回 IEnumerable 而不是 IQueryable 存储库应仅负责CRUD操作 返回类型存储库方法应为模型(实体) 仅实现聚合根存储库 如果我在我的项目的工具存储库 ..
发布时间:2020-10-29 20:23:48 C#/.NET

使用存储库模式,工作单元和统一性的实体框架

使用此示例和此实现我正在尝试创建一个解决方案,以将 UnitOfWork 类与单个存储库,因为它们违反了开放式封闭原则,因为每次添加新存储库时,都必须修改 UnitOfWork 类。我正在使用Unity作为IoC容器来连接依赖项。 我的问题是自动连接 UnitOfWork , IDbContext 和存储库( IEmployeeRepository 和 ICustomerRepository ..

使用创建的DbContext模型类从EF Code First生成存储库

我正在开始一个新项目,并想使用EF Code First模式,但我也想使用存储库模式。我一直在寻找一种从dbcontext模型生成存储库的方法,但是到目前为止,我看到的所有答案都是从.edmx或DB生成存储库。我不想创建.edmx。 我要做的步骤是: 1.编写模型 2.使用t4模板生成存储库 3.从模型编写应用程序代码并回购 4.运行Add-Migration添加迁移代码 ..
发布时间:2020-10-27 22:55:19 其他开发

从多个DTO构造域对象

假设您有规范的Customer域对象。您在三个不同的屏幕上显示“客户”:“外部管理员”,“内部管理员”和“更新帐户”。 进一步假设每个屏幕仅显示所有数据的一部分包含在客户对象中。 问题是:当UI从每个屏幕(例如,通过DTO)传回数据时,它仅包含完整客户域对象的子集。因此,当您将该DTO发送到客户工厂以重新创建客户对象时,您只有客户的一部分。 然后将该客户发送到客户存储库保存它,一 ..
发布时间:2020-10-27 00:33:12 其他开发

DDD:关于存储库/域边界的混乱

我的域由产品,部门,类,制造商,DailySales和HourlySales组成。 我有一个ProductRepository,可以方便地从存储中存储/检索产品。 我有一个DepartmentAndClass存储库,它可以方便地存储/检索部门和类,以及从这些部门和类中添加和删除产品。 我还有一个DailySales存储库,可用于从多个分组检索有关每日销售额的统计信息。即 ..
发布时间:2020-10-25 21:21:16 其他开发

如何处理带有清理架构的DDD中具有过多依赖项参数的UseCase Interactor构造函数?

使用带有Clean Architecture的DDD,我首先实例化所有依赖项(例如存储库和服务),并将其注入到UseCases中。我发现随着时间的推移,我对每个UseCase的依赖关系列表已经变得越来越大。例如,我的UseCase使用3个聚合根,因此我有3个存储库。还不错但是,随着我添加更多功能,我发现自己添加了域服务或更多存储库,并且还必须将它们注入UseCase构造函数中。在UseCase交互 ..

存储库模式可以用于加载“部分实体”吗?

我试图更好地了解域驱动设计中的存储库模式。存储库模式实现的所有示例都仅处理实体。但是,如果我只需要检索实体的某些部分怎么办?例如,我拥有具有大量属性的客户实体。我可以在ClientRepository中定义这样的内容吗? public IEnumerable GetClientsNames(){...} 甚至: class ClientBase ..
发布时间:2020-10-25 21:09:18 C#/.NET

DDD资料库除了可以使用“真实”内容外,还可以使用摘要对象吗?对象

说我正在创建一个存储库,以存储数字电子书,如下面的界面所示。该存储库将存储书籍的实际文本以及标识书籍的元数据(标题,作者,出版商,ISBN等。)。 公共接口IBookRepository { void AddBook(Book newBook); void DeleteBook(int bookId); void UpdateBook(Book UpdatedBook); 图 ..

DDD存储库的优缺点

优点: 存储库隐藏复杂的查询。 可以使用存储库方法作为事务边界。 ORM可以轻松模拟 缺点: ORM框架已经提供了一个集合,例如与持久对象的接口,存储库的目的是什么。因此,存储库为系统增加了额外的复杂性。 使用findBy方法进行组合爆炸。使用Criteria对象,查询或示例对象可以避免使用这些方法。但这不需要存储库,因为ORM已经支持这些查找对象的方法。 由于存储库是聚 ..
发布时间:2020-10-25 21:02:30 其他开发