繁体   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