Asp.net mvc 请帮我找出是什么使我的功能变慢

Asp.net mvc 请帮我找出是什么使我的功能变慢,asp.net-mvc,stored-procedures,entity-framework-6,repository-pattern,unit-of-work,Asp.net Mvc,Stored Procedures,Entity Framework 6,Repository Pattern,Unit Of Work,使用工作单元存储库模式 私有UnitOfWork UnitOfWork=新UnitOfWork private Entities _Entities = new Entities(); var filing_xml = unitOfWork.T_FILING_XMLRepository.Get().Where(a => a.filing_id == filingID).FirstOrDefault(); 获取数据大约需要10秒钟 var filing_xml = _Entiti

使用工作单元存储库模式

私有UnitOfWork UnitOfWork=新UnitOfWork

private Entities _Entities = new Entities();

var filing_xml = unitOfWork.T_FILING_XMLRepository.Get().Where(a =>
    a.filing_id == filingID).FirstOrDefault();
获取数据大约需要10秒钟

var filing_xml = _Entities.T_FILING_XML.Where(a => a.filing_id == filingID).FirstOrDefault();
获取数据大约需要2秒钟

var filing_xml = _Entities.T_FILING_XML.Where(a => a.filing_id == filingID).FirstOrDefault();
有什么办法可以使工作单元更快

public virtual IEnumerable<TEntity> Get(
    Expression<Func<TEntity, bool>> filter = null,
    Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null,
    string includeProperties = "")
{
    IQueryable<TEntity> query = dbSet;

    if (filter != null)
    {
        query = query.Where(filter);
    }

    foreach (var includeProperty in includeProperties.Split
        (new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
    {
        query = query.Include(includeProperty);
    }

    if (orderBy != null)
    {
        return orderBy(query).ToList();
    }
    else
    {
        return query.ToList();
    }
}
工人阶级的单位

public GenericRepository<T_FILING_XML> T_FILING_XMLRepository
{
    get
    {
        if (this.t_filing_xmlRepository == null)
        {
            this.t_filing_xmlRepository = new GenericRepository<T_FILING_XML>(context);
        }
        return t_filing_xmlRepository;
    }
}
代码1

您将从数据库中获取所有记录,然后在应用程序中过滤结果以仅获取一条记录。Get方法有一个过滤器参数,为什么不使用它呢

使用下面的代码,您只能从数据库中获取一条记录

var filing_xml = unitOfWork.T_FILING_XMLRepository.Get(a =>
    a.filing_id == filingID).FirstOrDefault();

该模式不会使SP变慢。请发布你的UOW class.hi。。更新代码为案例2添加UOW类需要2秒钟,您能验证填充id列上是否有索引吗?如果你已经有一个,你能用SQL分析器发布SQL吗?@JonathanMagnan感谢jonathan的回复。我有索引,但问题是我得到了所有的数据。所以我有很多文件,然后过滤它。我解决了