したがって、私の状況では、テーブルの1つで日付をnullにできないlinq-to-sqlモデルがあります。データベースではそのフィールドにnullが許可されていないため、これは意図されたものです。私の問題は、このモデルでLinqクエリを作成しようとすると、日付が「null許容」フィールドではなく、「Nothing」と比較できないため、そのテーブルで左結合を実行できなくなることです。
例:Movieテーブル{ID、MovieTitle}とShowingsテーブル{ID、MovieID、ShowingTime、Location}があります
今、私は上映されていないすべての映画を返すステートメントを書き込もうとしています。T.SQLでは、これは次のようになります。
Select m.*
From Movies m Left Join Showings s On m.ID = s.MovieID
Where s.ShowingTime is Null
この状況では、「場所」フィールドでNullをテストできますが、これは実際にはありません(単純化された例です)。私が持っているのはnull以外の日付だけです。
私はLinqで書き込もうとしています:
From m In dbContext.Movies _
Group Join s In Showings on m.ID Equals s.MovieID into MovieShowings = Group _
From ms In MovieShowings.DefaultIfEmpty _
Where ms.ShowingTime is Nothing _
Select ms
しかし、私は次のようにエラーが発生しています
'Is'演算子は、タイプ'Date'のオペランドを受け入れません。オペランドは、参照型またはnull許容型である必要があります。
これを回避する方法はありますか?モデルは正しいです。Showings:ShowTimeテーブルにnullがあってはなりません。しかし、左参加を行い、特定の映画の上映時間がない場合、ShowTimeはその映画には何もないはずです...
皆さんの助けに感謝します。