2011-06-01 90 views
4

我正在使用MySQL數據庫在ASP.NET MVC 3中工作,我已經設置了所有需求並且連接工作正常。下面這段代碼是否正常工作,併產生正確的結果LINQ與ASP.NET MVC 3中的MySQL數據庫,將DateTime存儲到變量中

 try 
     { 
      ViewBag.Model = (from n in _db.mainDatas 
          where n.time_stamp == new DateTime(2010, 11, 3, 0, 0, 15) 
          select n).Take(10).ToList(); 
     }catch (Exception e) { 
      ViewBag.Error = e; 
     } 

但是,當我更改此代碼爲:

 DateTime test = new DateTime(2010,11,3,0,0,15); 
     try 
     { 
      ViewBag.Model = (from n in _db.mainDatas 
          where n.time_stamp == test 
          select n).Take(10).ToList(); 
     }catch (Exception e) { 
      ViewBag.Error = e; 
     } 

生成此錯誤消息:

MySql.Data .MySqlClient.MySqlException:命令執行期間遇到致命錯誤。 ---> MySql.Data.MySqlClient.MySqlException:無法序列化日期/時間值

我正在使用MySQL Connector/Net 6.3.6。任何解決這個問題的方法?

+0

你可以使用_db.Log屬性來顯示生成的SQL查詢嗎? – ChristiaanV 2011-06-01 06:28:02

+0

不幸的是,我不知道如何檢查日誌 – wijaya 2011-06-01 08:49:45

+0

您可以使用此鏈接查看如何使用Log屬性。 http://mattberseth.com/blog/2008/01/profiling_linq_to_sql_using_th.html我非常好奇發生了什麼,希望你可以用Log來追蹤它。 – ChristiaanV 2011-06-01 09:04:48

回答

0

好吧,經過一番搜索和瘋狂搜索之後,終於找到了解決我的問題的方法。實際上這不是一個解決方案,因爲它看起來像MySQL Connector/Net 6.3.6對我的項目不太好(可能是因爲我的服務器,數據庫,項目配置等),所以我使用Devart dotConnector而不是MySQL Connector /淨6.3.6和一切工作像魔術。 :D

2

這似乎是您使用的MySql的Linq to SQL提供程序的問題。 在第一種情況下,日期部分位於從您的linq查詢生成的表達式樹中,在第二種情況下,DateTime被聲明在Linq查詢的外側,因此生成的表達式樹將與第一種情況不同。現在,它依賴於Linq to SQL提供程序中表達式樹的解析器如何處理這兩種情況,在這種情況下,提供程序似乎無法正確處理第二種情況表達式樹。

相關問題