2017-04-05 15 views
0

データベースから未処理ファイルを収集するSQL文を作成しました。 DicomDataType_LKテーブルを使用して、興味のあるものに結果を限定します。実行すると、2つの結果が得られます。TSQLクエリをLINQに変換する

SELECT * FROM [Procedure].DicomData dicoms 
JOIN [Procedure].DicomDataType_LK dtype 
    ON dicoms.DicomDataTypeID = dtype.DicomDataTypeID 
WHERE dicoms.ProcedureID = '00000000-0000-0000-0000-000000000000' 
    AND dicoms.CreateDate > '3/27/2017' 
    AND (dtype.DicomDataType LIKE 'V Density' 
     OR dtype.DicomDataType LIKE 'Q Density' 
     OR dtype.DicomDataType LIKE 'i Density' 
     OR dtype.DicomDataType LIKE 'u Density') 

私はSQLにLINQにこれを翻訳していますが、同じ接続で、私はゼロの結果を取得しています。

  IQueryable<DicomData> rows = from dicoms in db.DicomDatas 
       join dtype in db.DicomDataType_LKs 
        on dicoms.DicomDataTypeID equals dtype.DicomDataTypeID 
       where dicoms.ProcedureID == Guid.Empty 
        && dicoms.CreateDate > fromTime 
        && (dtype.DicomDataType.Equals("V Density") 
        || dtype.DicomDataType.Equals("Q Density") 
        || dtype.DicomDataType.Equals("i Density") 
        || dtype.DicomDataType.Equals("u Density")) 
       select dicoms; 

私は、fromTimeが私の2つの結果を含むべき値を与えることを確認しました。誰かが私の翻訳で間違っていることを教えてもらえますか?私が見ることができるものから、

+1

と同じではありません 'とdicoms.CreateDate> =「3月27日/ 2017''は' && dicoms.CreateDate> fromTime' ...つまりは同じではありません'>'は '>'と同じではありません... –

+1

'Guid.Empty'は(例えば)' new Guid( "00000000-0000-0000-0000 -000000000000 ")'を入力します。例については、[この質問](http://stackoverflow.com/questions/358345/hanging-linq-query-with-guid-empty-in-the-where-expression)を参照してください。したがって、上記の新しいGuid構文に変換して、動作するかどうかを確認してください。私はすべてのゼロが有効なGUIDだと思うが、空のGUIDはない。 –

+0

@SaniSinghHuttunen - ありがとうございました。 SQLで行われたステートメントは、LINQクエリが正しいかどうかをテストするためのものでした。 CreateDateは1週間前からのものですが、処理中のアイテムは今日からのものなので、いずれかの作業が必要です。 – Tim

答えて

1

AND dicoms.CreateDate >= '3/27/2017'&& dicoms.CreateDate > fromTime

すなわち同じではありません>=>

関連する問題