2012-03-15 214 views
1

我是ValueInjecter的新手,我从示例应用程序使用它一个星期。现在,这是我使用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(输入)

这是该行多数民众赞成花费过多时间。我有一个状态类型,并且有超过10,000个员工记录与POCO实例相关联...我使用Mapper只希望映射状态,但由于某种原因它解析了整个图。有谁能说出如何避免它?我的输入只有状态字段,甚至没有包含任何子列表,但Mapper仍然不确信并且现在解析整个POCO超过几分钟。

+0

尝试使用秒表或类似dotTrace,你会肯定知道这行代码被抽空多的时间 – Omu 2012-03-15 19:01:46

+0

@ (实体) 。输入来自(实体); 这是需要时间的路线,我不知道这是为什么,因为它适用于大多数人,但对于一条记录来说,需要相当长的时间才能回来。 – afr0 2012-03-16 06:54:28

+1

你可以将它分成input.InjectFrom(entity); input.InjectFrom (实体); ... – Omu 2012-03-16 08:31:04

回答

0

根据注射名为“IdsToTypeIds”我想,它进入数据库,并提取数据,就像Repo.Get<Type>(Id)

的东西,如果你不想穿越某些属性可以指定在匹配方法

此规则

,也可以注射在构造函数接收参数,如果你需要任何

反正最快的方法是使用SmartConventionInjection,这就是我建议你做

只是拷贝在您的解决方案,并使用它,你会使用ConventionInjection