如何在transformer中使用class类型
How to use class type in transformer
在我的 booking
对象中,我保留了一个对象引用列表,其中包含相应文档的 Type
和 WorkflowStepTypeId
。然后我想使用 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 不知道我的类型是什么。在数据库方面,我只是想让它生成两种类型的字符串并比较这些字符串。但是,出于重构的目的,如果知道该类型实际上在所述转换器中使用会很棒,因此如果它被重构,转换器也会自动被重构。
我想要的可能吗?
您希望它比较实际类型,以便以后重构该类型时,转换器仍能正常工作?
不,那不可能。
如果我没理解你的问题,WorkflowStepType 可以是类型名称吗?如果您稍后重构类型名称,当然,您仍然需要更新数据库中的 WorkflowStepType 属性。但是在你的变压器中,它看起来像这样:
.FirstOrDefault(a => a.WorkflowStepType == nameof(Trainingworkflow))
在我的 booking
对象中,我保留了一个对象引用列表,其中包含相应文档的 Type
和 WorkflowStepTypeId
。然后我想使用 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 不知道我的类型是什么。在数据库方面,我只是想让它生成两种类型的字符串并比较这些字符串。但是,出于重构的目的,如果知道该类型实际上在所述转换器中使用会很棒,因此如果它被重构,转换器也会自动被重构。
我想要的可能吗?
您希望它比较实际类型,以便以后重构该类型时,转换器仍能正常工作?
不,那不可能。
如果我没理解你的问题,WorkflowStepType 可以是类型名称吗?如果您稍后重构类型名称,当然,您仍然需要更新数据库中的 WorkflowStepType 属性。但是在你的变压器中,它看起来像这样:
.FirstOrDefault(a => a.WorkflowStepType == nameof(Trainingworkflow))