2016-07-31 9 views
0

こんにちは私はこの質問がすでにStackOverFlowで100回あったと信じていますが、私の問題を解決できませんでした。これは私を困らせるコードラインですタイプ 'System.Int32'をタイプ 'System.Object'にキャストできません。 LINQ to EntitiesはEDMプリミティブまたは列挙型のキャストしかサポートしていません

DatumSnimanja = (x.VrijemeSnimanja != null) ? ((DateTime)x.VrijemeSnimanja).Day + "." + ((DateTime)x.VrijemeSnimanja).Month + "." + ((DateTime)x.VrijemeSnimanja).Year : null, 

これを修正する方法を教えてください。このコードでは

完全なコード

 var result = resultVideoKlipBaseInfo.Select(x => new 
      { 
       x.IDvideoKlip, 
       x.LokacijaHDD, 
       x.NazivVideoKlipa, 
       x.Snimatelj.IDsnimatelj, 
       x.Snimatelj.Ime, 
       x.Snimatelj.Prezime, 
       x.Snimatelj.Storno, 
       DatumSnimanja = (x.VrijemeSnimanja != null) ? ((DateTime)x.VrijemeSnimanja).Day + "." + ((DateTime)x.VrijemeSnimanja).Month + "." + ((DateTime)x.VrijemeSnimanja).Year : null, 
       SatIMinutaSnimanja = (x.VrijemeSnimanja != null) ? ((DateTime)x.VrijemeSnimanja).Hour + ":" + ((DateTime)x.VrijemeSnimanja).Minute : null, 
       x.VrijemeSnimanja,       
       x.VrijemeTrajanjaKlipa 

      }); 
      return Ok(result); 

私は、データベースからのDateTimeを取得し、DateTime書式から文字列形式にキャストしています。

私は、この2016年12月31日00から持つようにしたい:00:この2016年12月31日

よう00.000何かがこの質問を読んでありがとうございました:)

+0

xのデータ型は? – pquest

+0

文字列 "。"に整数を組み合わせることはできません。整数を文字列に変換するには、ToString()を使用します。 dongの正しい方法は、ToString( "dd.MM.yyyy")を使用してDateTimeと出力を取得することです。 – jdweng

+0

なぜあなたは(DateTime)にキャストしていますか?あなたのモデルを表示してください。完全なクエリを表示します。 – user3185569

答えて

0

私はコードこの

DatumSnimanja = SqlFunctions.DateName("day", x.VrijemeSnimanja) + "." + SqlFunctions.DateName("month", x.VrijemeSnimanja) + "." + SqlFunctions.DateName("year", x.VrijemeSnimanja), 
には

DatumSnimanja = (x.VrijemeSnimanja != null) ? ((DateTime)x.VrijemeSnimanja).Day + "." + ((DateTime)x.VrijemeSnimanja).Month + "." + ((DateTime)x.VrijemeSnimanja).Year : null, 

の行を変更することにより、この問題を修正します0

ありがとうございました! :)

1

あなたはToStringメソッドを使用することはできません( )は、同等のSQLメソッドが存在しないため、データベースに対して実行されるクエリ内の書式設定に使用されます。その結果、エラーが発生します。 (サポートされている文字列メソッドのリストはこちら、https://msdn.microsoft.com/en-us/library/bb738534(v=vs.100).aspx

最も簡単な方法は、未処理の値を返し、メインクエリが呼び出された後で(ToList()を呼び出して、または結果を反復して)そのフォーマットを実行することです。ここで

は、いくつかの方法があります。

How can I convert DateTime to String in Linq Query?

Convert datetime to a formatted string inside a LINQ to SQL query

関連する問題