2017-02-14 4 views
-1

私はMVCアプリケーションを開発しています。私は、SQLテーブルに1つのタイムスタンプ列を持っています。データベースからすべてのデータを取得するクエリが1つあります。私はLINQを使用しています。linqクエリでC#変数にsqlタイムスタンプを割り当てる方法は?

以下

私のクエリです:

obj = (from c in entityObject.NCT_ProcessAudit.AsNoTracking() 
     join proc in entityObject.NCT_Process_Settings on c.process_id equals proc.ID 
     select new returnObject 
     { 
      ID = c.ID, 
      process_id = c.process_id, 
      icon_id = c.icon_id, 
      dispaly_order = c.dispaly_order, 
      updated = c.updated, //c. updated timestamp in sql and updated is datetime as public Nullable<System.DateTime> updated { get; set; } 
      output = c.output 
     }).OrderByDescending(a => a.updated).ToList(); 

私は、クエリの上に実行すると、私は "次のエラー

にNULL可能にマテリアライズド「System.Byte []」タイプから指定されたキャストを取得System.DateTime '型が無効です。

私はここで助けを得ることができます。どんな助けもありがとう。ありがとうございました。

+1

:-)に置き換えられました。 returnObjectクラスで更新される型は何ですか? – A3006

+0

ありがとうございます。 public Nullable Updated {get;セット; } –

+0

クラス名を 'returnObject'にしないでください。 –

答えて

0

私がコメントに書いたとおり:
SQL timesatampの型は、その名前で推測されるものとまったく同じではありません。 これは実際には行のバージョン管理に通常使用される単なる実行番号です。

あなたの場合、フィールド名(updated)の名​​前で、いつ行が更新されたかを知りたいと思いますので、datetimeをフィールドのタイプとして使用する方がよいでしょう。

このすべての方法によっては、MSDNで書かれています:

は、データベース内で自動的に生成された、ユニーク進数を公開したデータ型です。タイムスタンプは、一般に、テーブル行のバージョンスタンプのためのメカニズムとして使用されます。記憶容量は8バイトである。タイムスタンプデータ型は単に増分する数値であり、日付または時刻は保持されません。日付または時刻を記録するには、datetimeデータ型を使用します。 SQLServerの最近のバージョンで

は、このタイプは非推奨とrowversion

関連する問題