探している結果を得るには、両方にtruncatetimeを適用する必要があります。
x => EntityFunctions.TruncateTime (x.FromTime) == EntityFunctions.TruncateTime(assignmentDate)
私がLINQを試したところ、assignmentDateをDateTimeOffsetに変換していました。切り捨て後も、日付に異なるオフセットがあったため失敗していました。
これは
((convert (datetimeoffset, convert(varchar(255), [Extent1].[FromTime], 102) + ' 00:00:00 ' + Right(convert(varchar(255), [Extent1].[FromTime], 121), 6) , 102)) = CAST(convert (datetime2, convert(varchar(255), @p__linq__0, 102) , 102) AS datetimeoffset))
OR ((convert (datetimeoffset, convert(varchar(255), [Extent1].[FromTime], 102) + '' 00:00:00 '' + Right(convert(varchar(255), [Extent1].[FromTime], 121), 6) , 102) IS NULL)
AND (convert (datetime2, convert(varchar(255), @p__linq__0, 102) , 102) IS NULL))
以下のようなSQLの何かを生成します、あなたがしようとしているものを私たちに示してください? –
クエリ全体を貼り付けることはできませんが、これはクラス 'entity.DbFunctions.TruncateTime(x.FromTime)==(assignmentDate)' です。assignmentDateはDateTime検索フィールドです.FromTimeはDB DateTimeOffsetフィールドです –
assignmentDateをdatetimeoffsetの範囲に変換します。これは正しい解決策ではないかもしれません。しかし、あなたが正しい解決策を得るまでの道のり。 – Vijay