Linq与ASP.NET MVC 3中的MySQL数据库,将DateTime存储到变量中

我使用
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: Fatal error encountered during command execution. —> MySql.Data.MySqlClient.MySqlException: Unable to serialize date/time value

我正在使用MySQL Connector / Net 6.3.6.任何解决这个问题的方法?

最佳答案 对于您一直在使用的Myqql的Linq to SQL提供程序,这似乎是一个问题.

在第一种情况下,日期部分位于从linq查询生成的表达式树中,其中在第二种情况下,DateTime被声明在Linq查询的一侧,因此生成的表达式树将与第一种情况不同.现在它依赖于Linq to SQL提供程序中表达式树的解析器如何处理这两种情况,在这种情况下似乎提供程序无法正确处理第二种情况表达式树.

点赞