代码之家  ›  专栏  ›  技术社区  ›  user266909

EF CORE包含()不在智能感知范围内

  •  0
  • user266909  · 技术社区  · 4 年前

    我有一个带有抽象类的存储库项目,使用EF CORE为依赖的MVC项目获取数据。在存储库中,include()方法出现在后面的智能感知中。Set()在存储库中,但不在MVC项目的控制器中。如何使include()对控制器可用?谢谢。

    public abstract class RepositoryBase < T >: IRepositoryBase < T > where T: class {
      protected PCC_FITContext RepositoryContext {
        get;
        set;
      }
    
      public RepositoryBase(PCC_FITContext repositoryContext) {
        this.RepositoryContext = repositoryContext;
      }
    
      public IQueryable < T > FindAll() {
        return this.RepositoryContext.Set < T > ().AsNoTracking();
      }
    
      public IQueryable < T > FindByCondition(Expression < Func < T, bool >> expression) {
        return this.RepositoryContext.Set < T > ().Where(expression).AsNoTracking();
      }
      
      .........
      .........
    }
    0 回复  |  直到 4 年前
        1
  •  0
  •   Ivan Stoev    4 年前

    这是EF Core的缺点之一 Include / ThenInclude 图案。这些是EF Core中定义的特定扩展方法 EntityFrameworkQueryableExtensions 类的一部分 Microsoft.EntityFrameworkCore 命名空间和 微软。EntityFrameworkCore 组装(包装)。

    因此,为了访问它们,(1)项目必须具有(包)引用 Microsoft.EntityFrameworkCore 包和(2)代码文件需要

    using Microsoft.EntityFrameworkCore;