0

複数の条件に基づいて 2 つのテーブルを結合しようとしていますが、日付フィールドを比較できないという問題があります。日付は DB に datetime 形式で格納されており、特定の日付のすべてのレコードが必要です。以下のコードに示すようにこれを行うと、この例外が発生します..メソッド 'System.String ToShortDateString()' はサポートされていませんSQL への変換。

PSこれは大きなクエリの一部です..

    string dt = "10/14/2009";    


 using (ReportGeneratorDataContext db = new ReportGeneratorDataContext())
        {
            var r = from f in db.f
                    join a in db.a
                    on new { x = f.ID, y = f.date.ToShortDateString() } equals new { x = a.ID, y = dt }
                    select f.Name;
        }

回避策はありますか?

4

1 に答える 1

0

私はしようとします

  • 独自の Linq から SQL へのマッピングを使用して DB にビューを定義する
  • 日付に変換された文字列を含むテーブルの計算列を(テーブルまたはビューのいずれかで)定義しますa(DB側で...)
  • データベース外で結合を行います (つまり、完全な相互結合を取得し、whereこの列挙に対して a を実行します)。

これらのオプションのどれも本当に満足のいくものではないことは承知していますが、それはLinq-To-Sqlの欠点だと思います...

于 2010-01-21T19:40:58.393 に答える