2017-09-12 3 views
1

私の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は私のタイプが何であるかを知らないということを知って。データベース側では、両方の型の文字列を作成し、それらの文字列を比較するだけです。しかし、リファクタリング目的のためには、そのタイプが実際に前記トランスフォーマで使用されることを知っていることは素晴らしいことでしょう。したがって、リファクタリングされると、トランスフォーマーも自動的にリファクタリングされます。

私は可能なのですか?

答えて

2

実際のタイプを比較して、後でタイプをリファクタリングすると変圧器が機能するようにしますか?

いいえ、それはできません。

私はあなたの質問を正しく理解している場合、WorkflowStepTypeを型名にできますか?後で型名をリファクタリングする場合は、データベースのWorkflowStepTypeプロパティを更新する必要があります。しかし、変圧器では、次のようになります。

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

このように、私は変圧器の実際のタイプ比較を行う必要はありません。型名の文字列比較だけです。それはnameofが私が探しているものであるように見えます。変圧器がコンパイルされたら、解答を設定します:) – Chrotenise

+0

@Chroteniseこれで解決しましたか? –

+0

それは、感謝:)働いた – Chrotenise

関連する問題