如何将ABP框架下的存储库改写为支持长尾词查询的存储库?

2026-04-18 03:270阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1846个文字,预计阅读时间需要8分钟。

如何将ABP框架下的存储库改写为支持长尾词查询的存储库?

数据库+Repository是类似集合的接口,领域层和应用层使用它来访问数据持久性系统(数据库),通过读写业务对象(通常是聚合)+常见的数据库原则是在领域层定义一个数据库接口

存储库

Repository 是一个类似于集合的接口,领域层和应用程序层使用它来访问数据持久性系统(数据库),以读写业务对象(通常是聚合)

常见的存储库原则是:

  • 在领域层定义一个存储库接口(因为它被用于领域层和应用层),在基础设施层实现(启动模板中的EntityFrameworkCore项目)
  • 不要在存储库中包含业务逻辑。
  • 存储库接口应该是独立于数据库提供者/ ORM的。例如,不要从存储库方法返回DbSet。DbSet是 EF Core 提供的一个对象
  • 为聚合根创建存储库,而不是为所有实体。因为,子集合实体(聚合的)应该通过聚合根访问
不要在存储库中包含领域逻辑

虽然这个规则在一开始看起来很明显,但是很容易将业务逻辑泄露到存储库中

示例:从存储库中获取不活跃的问题

public interface IIssueRepository : IRepository<Issue, Guid> { Task<List<Issue>> GetInActiveIssuesAsync(); }

IIssueRepository 扩展了标准 IRepository<...> 接口,添加GetInActiveIssuesAsync 方法。

阅读全文

本文共计1846个文字,预计阅读时间需要8分钟。

如何将ABP框架下的存储库改写为支持长尾词查询的存储库?

数据库+Repository是类似集合的接口,领域层和应用层使用它来访问数据持久性系统(数据库),通过读写业务对象(通常是聚合)+常见的数据库原则是在领域层定义一个数据库接口

存储库

Repository 是一个类似于集合的接口,领域层和应用程序层使用它来访问数据持久性系统(数据库),以读写业务对象(通常是聚合)

常见的存储库原则是:

  • 在领域层定义一个存储库接口(因为它被用于领域层和应用层),在基础设施层实现(启动模板中的EntityFrameworkCore项目)
  • 不要在存储库中包含业务逻辑。
  • 存储库接口应该是独立于数据库提供者/ ORM的。例如,不要从存储库方法返回DbSet。DbSet是 EF Core 提供的一个对象
  • 为聚合根创建存储库,而不是为所有实体。因为,子集合实体(聚合的)应该通过聚合根访问
不要在存储库中包含领域逻辑

虽然这个规则在一开始看起来很明显,但是很容易将业务逻辑泄露到存储库中

示例:从存储库中获取不活跃的问题

public interface IIssueRepository : IRepository<Issue, Guid> { Task<List<Issue>> GetInActiveIssuesAsync(); }

IIssueRepository 扩展了标准 IRepository<...> 接口,添加GetInActiveIssuesAsync 方法。

阅读全文