-1

スロー私の関数を作っているものを把握するために私を助けてください。作業リポジトリパターン</p> <p>民間のUnitOfWorkのUnitOfWork =新しいUnitOfWorkの()の単位を使用して

private Entities _Entities = new Entities(); 

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

これは

var filing_xml = _Entities.T_FILING_XML.Where(a => a.filing_id == filingID).FirstOrDefault(); 

これは、データに

を取得するために約2秒を取っているデータをフェッチするために約10秒を取っているが速く、作業の単位を作るためにどんな解決策はありますか?

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; 
    } 
} 
+2

「パターン」がSPを遅くしていません。 UOWクラスを投稿してください。 – mxmissile

+0

こんにちはmxmissile .. UOWクラスを追加したコードを更新しました – user6392608

+0

ケース#2(2秒かかるもの)については、filling_idカラムにインデックスがあるかどうか確認できますか?既にSQLプロファイラを使用している場合は、SQLプロファイラを使用してSQLを投稿できますか? –

答えて

0

あなたは、あなたが取得するアプリケーションで結果をフィルタリングデータベースからすべてのレコードをフェッチしている1

private Entities _Entities = new Entities(); 

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

コード#レコードは1つだけです。 Getメソッドにはフィルタパラメータがありますが、なぜそれを使用しないのですか?

以下のコードを使用すると、データベースからレコードを1つだけフェッチします。

var filing_xml = unitOfWork.T_FILING_XMLRepository.Get(a => 
    a.filing_id == filingID).FirstOrDefault(); 
関連する問題