0

datetime の日付部分だけを返す linq クエリを取得する方法はありますか。私は見つけることができるすべての提案を試しましたが、そのすべてが実行時にエラーを生成します。これは、クエリの選択部分と各エラー メッセージです (クエリの残りの部分は正常に機能します)。

select new { d.id, d.date.Value.Date }; 

指定された型メンバー 'Date' は、LINQ to Entities ではサポートされていません。初期化子、エンティティ メンバー、およびエンティティ ナビゲーション プロパティのみがサポートされています。

select new { d.id, date=EntityFunctions.TruncateTime(d.date) }; 

関数は SQL Server Compact によって認識されません。[ 関数の名前 = TRUNCATETIME、データ型 (既知の場合) = ]

select new { d.id, date=d.date.Value.Month + "/" + d.date.Value.Day };

タイプ 'System.Int32' をタイプ 'System.Object' にキャストできません。LINQ to Entities は、Entity Data Model プリミティブ型のキャストのみをサポートします。

select new { d.id, date=d.date.Value.Month.ToString() + "/" + d.date.Value.Day.ToString() };

LINQ to Entities はメソッド 'System.String ToString()' メソッドを認識せず、このメソッドはストア式に変換できません。

select new { d.id, date=String.Concat(d.date.Value.Month, "/")};

LINQ to Entities はメソッド 'System.String Concat(System.Object, System.Object)' メソッドを認識せず、このメソッドをストア式に変換できません。

助けてくれてありがとう!

4

1 に答える 1

0
select new {
    d.id,
    date = SqlFunctions.DatePart("m", d.date) + "/" + SqlFunctions.DatePart("d", d.date)
}; 

month/dayパターン付きの文字列が得られます。

しかし、私は次のように行きます:

(from r in row
...
select new { d.id, date = d.date.Value })
.AsEnumerable()
.Select(x => new { x.id, x.date.Date }); 

db から datetime 全体を選択し、日付のみの選択を LINQ to objects クエリに移動します。

于 2013-09-21T19:11:34.357 に答える