相关疑难解决方法(0)

应该在Repository还是Service层中编写复杂的查询?

我计划将数据访问层迁移到使用存储库模式和工作单元.

我知道存储库将帮助我轻松地将持久性存储(数据库,集合等)和EF等技术更改为MongoDB.所以我注意到了一些存储库实现的关键点,例如:

  1. 返回IEnumerable而不是IQueryable
  2. 存储库应仅对CRUD操作负责
  3. 存储库方法的返回类型应该是模型(实体)
  4. 仅实现聚合根的存储库

如果我在项目中的实现存储库中应用这些关键点,我完全忘记了如何处理与多个实体相关的复杂查询.

目前,我已经有了是对BLL库有很多服务类将直接联系到DbContext与DbSetEF和一些像这样的验证:

public IEnumerable<ProjectDTO> GetProjectWithDetails()
{
    // Validation

    // Logging

    // Can be any logic need to before query data.  

    Dbcontext.Projects.Where(p => 
    // multiple of conditions go here follow business rules
    // conditions will need to check another entities (task, phase, employee...) such as:
    // 1. project have task status 'in-progress' .. etc
    // 2. project have employeeid 1,2,3..
    // 3. project have stask start at some …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework repository-pattern

7
推荐指数
1
解决办法
2043
查看次数

标签 统计

c# ×1

entity-framework ×1

repository-pattern ×1