簡體   English   中英

Linq 與 ASP.NET MVC 3 中的 MySQL 數據庫,將 DateTime 存儲到變量中

[英]Linq with MySQL database in ASP.NET MVC 3, storing DateTime into variable

我正在使用 MySQL 數據庫在 ASP.NET MVC 3 中工作,我已經設置了所有要求並且連接工作正常。 下面的代碼工作正常並產生正確的結果

        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 連接器/網絡 6.3.6。 這個問題有什么解決辦法嗎?

您一直在使用的 MySql 的 Linq 到 SQL 提供程序似乎存在問題。 在第一種情況下,日期部分位於從 linq 查詢生成的表達式樹中,而在第二種情況下,日期時間在 Linq 查詢之外聲明,因此生成的表達式樹將與第一種情況不同。 現在它取決於 Linq 到 SQL 提供者中的表達式樹解析器如何處理這兩種情況,在這種情況下,提供者似乎無法正確處理第二種情況表達式樹。

好的,在瘋狂地搜索和搜索之后,我終於找到了解決問題的方法。 好吧,這實際上不是一個解決方案,因為它看起來像 MySQL Connector/Net 6.3.6 在我的項目中表現不佳(可能是因為我的服務器、數據庫、項目配置等)所以我使用 Devart dotConnector 而不是 MySQL Connector/ Net 6.3.6,一切都像魔術一樣工作。 :D

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM