如何在变压器中使用类类型

时间:2017-09-12 15:38:27

标签: c# ravendb

在我的booking对象中,我保留了一个对象引用列表,其中包含相应文档的TypeWorkflowStepTypeId。然后我想使用Where中的类型来查找合适的文档,并通过id检索它。但是,在将变压器编译为RavenDB时,它表示它不知道我的类型是什么。

代码:

public class BookingToTrainingTransformer
        : RavenTransformerBase<Booking, BookingToTrainingTransformer.Result>
{
  public class Result
  {

  }

  public BookingToTrainingTransformer()
  {
      TransformResults = results =>
        from result in results
        let trainingWorkflow = LoadDocument<TrainingWorkflow>(result.WorkflowSteps
           .FirstOrDefault(a => a.WorkflowStepType == typeof(Trainingworkflow))
           .WorkflowStepTypeId)
   }
}

为了澄清,我知道 RavenDB不知道我的类型是什么。在数据库方面,我只是想让它创建两种类型的字符串并比较这些字符串。但是,为了重构目的,很高兴知道该类型实际上是在所述变换器中使用的,因此如果它被重构,变换器也会自动被重构。

我想要的是什么?

1 个答案:

答案 0 :(得分:2)

您希望它比较实际类型,以便稍后重构该类型,变换器仍然可以工作吗?

不,那是不可能的。

如果我正确理解您的问题,WorkflowStepType可以是类型名称吗?如果稍后重构类型名称,当然,您仍需要更新数据库中的WorkflowStepType属性。但是在你的变压器中,它看起来像这样:

.FirstOrDefault(a => a.WorkflowStepType == nameof(Trainingworkflow))