2012-03-15 19 views
1

私はValueInjecterを初めて使いました。サンプルアプリから1週間使用しました。今これは私はそれがうまく働いていたvalueInjecterに時間がかかりすぎています

public virtual TInput MapToInput(TEntity entity) 
    { 
     var input = new TInput(); 
     input.InjectFrom(entity) 
      .InjectFrom<NormalToNullables>(entity) 
      .InjectFrom<EntitiesToInts>(entity); 
     return input; 
    } 

を使用しようとしているコードが、今、すべての突然のある、input.InjectFromは、あまりにも多くの時間を取っているようです。私はここで何がうんざりしているのかよく分かりません。誰でもアドバイスを事前に感謝できますか?

更新: e.InjectFrom(入力)

これはあまりにも多くの時間を割いてthatsのラインです。私はStatus Typeを持っていて、POCO instanaceに関連付けられている10,000以上の従業員レコードがあります...私はMapperを使ってステータスのみをマップしていますが、何らかの理由でそのグラフ全体を解析しています。それを避ける方法を教えることができる人はいますか?私の入力はステータスフィールドしか持たず、子リストも含まれていませんが、MapperはまだPOCO全体を数分以上納得させて解析していません。

+0

を使用すると、それを使用するには、ドットトレースのようなストップウォッチか何かを使用しようと、あなたは多くの時間 – Omu

+0

に取っているあなたのコード内のどの行確実に知っていますよ@ ChuckNorris input.InjectFrom(エンティティ) .InjectFrom (エンティティ) .InjectFrom (エンティティ)。 これは時間がかかる行ですが、私はなぜそれがほとんどの人にとってうまくいくのかわかりませんが、1つのレコードでは戻ってくるのにかなりの時間がかかります。 – afr0

+1

あなたはinput.InjectFrom(エンティティ)に分割することができます。 input.InjectFrom (エンティティ)。 ...など – Omu

答えて

0

注入名「IdsToTypeIds」によると、あなたがマッチ方式で、このルールを指定することができますいくつかのプロパティを通過したくない場合、私は、それはDBに入り、データを引き出していることRepo.Get<Type>(Id)

のようなものを想定

とも注射は、コンストラクタのパラメータを受け取ることができ、あなたが、とにかくどんな

を必要とする場合には、最速の方法はSmartConventionInjectionを使用することであり、これは、私はあなたがすることをお勧め何です

ちょうどあなたのソリューションでそれをコピーして、あなたがConventionInjection

関連する問題