2010-12-05 13 views
3

SQL Server 2008でtimestampの列があります。Linq-to-Entitiesを使用してSQL Server 2008でタイムスタンプを照会する方法はありますか?

これで、カレンダーサーバーコントロールから取得した日付を使用してその列をクエリする必要があります。

私は、DateTime dtオブジェクトがあると仮定します。

この日時オブジェクト(dt)に記録されているすべてのレコードを返すこのdatetimeオブジェクトをフィルタリングする必要があります。

var a = DateTime.Now.ToString(); 
    var IsDone = from d in _le.diets 
       where d.log_time.Contains(a) 
       select d.done; 

_leは、プライベートエンティティフレームワークオブジェクトです。 3「バイトが[]」(システム「含む」と最高 拡張メソッドオーバーロード 「System.Linq.ParallelEnumerable.Containsため の定義が含まれていません

エラー:

このコードは、問題を抱えていますなぜなら、それは文字列を ':.Linq.ParallelQuery、 TSOURCE)は、」ダイエット\ダイエット\ \テスト\ DataTier \ DietMo​​vieRepository.csは30 32ダイエット

エラー2を入力し、ラムダ 式を変換できませんFいくつかの無効な 引数があります'ダイエット\ダイエット\ DataTier \ DietMo​​vieRepository.cs 30 26ダイエット

エラー1の委任\ \テスト 'System.Func' が 1つの 引数Fをとりません:ダイエット\ \テストは、デリゲート F型ではありません\ダイエット\ DataTier \ DietMo​​vieRepository.cs 30 26ダイエット

エラー4インスタンス引数: から変換することはできません 'バイト[]' 'System.Linq.ParallelQuery' Fへ:ダイエット\ダイエット\ \テスト\ DataTier \ DietMo​​vieRepository .cs 30 32 diet

私はEF初心者ですあなたの助けにnks!

UPDATE

EF CSファイルで

私は

public static diet Creatediet(global::System.Int64 id, global::System.Boolean done, global::System.Byte[] log_time) 
     { 
      diet diet = new diet(); 
      diet.id = id; 
      diet.done = done; 
      diet.log_time = log_time; 
      return diet; 
     } 

答えて

3

SQL Serverの「タイムスタンプが」名前「タイムスタンプが」廃止マークされ、実際には、時間とは何の関係も(ありません。「rowversionを」同一であるとする必要があります代わりに使用されます)。

「タイムスタンプ」が本当にある場合、これは不可能です。あなたは挿入時間に日時を設定している場合、それは些細なことする必要があります。また

DateTime start = date.Date, end = start.AddDays(1); 

... 
where row.log_time >= start && row.log_time < end 
... 

、あなたは主に日付範囲検索を行っている場合、log_timeは、クラスタ化インデックスの公正候補かもしれません。また、曜日ベースのクエリを実行している場合は、エポックの日である整数の非クラスタ化インデックスも機能します。

+0

2016今、EntityFrameworkは、ロウォールバージョンでテーブルを生成するときにもタイムスタンプを使用します –

0

はあなたがそれのちょうど日付の部分を見てみたいと仮定すると、参照してください?次に、あなたのような何かを行うことができるはず:

var a = DateTime.Now; 
    var isDone = from d in _le.diets 
       where d.log_time.Date == a.Date 
       select d.done; 
+0

回答ありがとうございますが、d.log_time.Dateを取得できないようです。 log_timeはデータベース内のタイムスタンプです。 – user469652

+0

ああ、どのような種類のlog_timeですか?それはTimeSpanですか? – Phill

+0

それはタイムスタンプです、私はそれを更新しました。 – user469652

関連する問題