在我的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不知道我的类型是什么。在数据库方面,我只是想让它创建两种类型的字符串并比较这些字符串。但是,为了重构目的,很高兴知道该类型实际上是在所述变换器中使用的,因此如果它被重构,变换器也会自动被重构。
我想要的是什么?
答案 0 :(得分:2)
您希望它比较实际类型,以便稍后重构该类型,变换器仍然可以工作吗?
不,那是不可能的。
如果我正确理解您的问题,WorkflowStepType可以是类型名称吗?如果稍后重构类型名称,当然,您仍需要更新数据库中的WorkflowStepType属性。但是在你的变压器中,它看起来像这样:
.FirstOrDefault(a => a.WorkflowStepType == nameof(Trainingworkflow))