C# 如何在transformer中使用类类型

C# 如何在transformer中使用类类型,c#,ravendb,C#,Ravendb,在我的预订对象中,我保留了一个对象参考列表,其中包含相应文档的类型和工作流步骤类型ID。然后我想在aWhere中使用类型来找到合适的文档,并按id检索它。但是,当将transformer编译到RavenDB时,它说它不知道我的类型是什么 代码: public class BookingToTrainingTransformer : RavenTransformerBase<Booking, BookingToTrainingTransformer.Result> {

在我的
预订
对象中,我保留了一个对象参考列表,其中包含相应文档的
类型
工作流步骤类型ID
。然后我想在a
Where
中使用类型来找到合适的文档,并按id检索它。但是,当将transformer编译到
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)
   }
}
公共类预订牵引变压器
:RavenTransformerBase
{
公开课成绩
{
}
公共预订牵引变压器()
{
TransformResults=结果=>
从结果到结果
let trainingWorkflow=加载文档(result.WorkflowSteps
.FirstOrDefault(a=>a.WorkflowStepType==typeof(培训工作流))
.WorkflowStepTypeId)
}
}
澄清一下,我知道拉文德不知道我是什么类型的人。在数据库方面,我只是希望它生成两种类型的字符串,并比较这些字符串。然而,出于重构的目的,最好知道该类型实际上是在所述转换器中使用的,因此,如果该类型被重构,那么该转换器也会自动被重构


我想要的是可能的吗?

您想让它比较实际的类型,以便以后重构类型时,转换器仍能工作吗

不,那是不可能的

如果我没弄错你的问题,WorkflowStepType可以是一个类型名吗?如果稍后重构类型名,当然,仍然需要更新数据库中的WorkflowStepType属性。但在你的变压器里,它看起来就像这样:

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

如前所述,我不需要RavenDB在变压器中进行实际的类型比较。只需对类型名称进行字符串比较。看起来名字就是我要找的-奇怪的是我以前从未遇到过。如果转换器编译,我会将答案设置为已解决:)