我正在使用 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。这个问题有什么解决办法吗?
最佳答案
您一直在使用的 MySql 的 Linq to SQL 提供程序似乎有问题。 在第一种情况下,日期部分“位于”从您的 linq 查询生成的表达式树中,而在第二种情况下,DateTime 在 Linq 查询之外声明,因此生成的表达式树将与第一种情况不同。现在它取决于 Linq to SQL 提供程序中表达式树的解析器如何处理这两种情况,并且在这种情况下,提供程序似乎无法正确处理第二种情况的表达式树。
关于mysql - 在 ASP.NET MVC 3 中使用 MySQL 数据库的 Linq,将 DateTime 存储到变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6197096/