我使用MYSQL和EF5(DB优先)连接器/ net 6.8.3.0。在我的本地机器上一切正常但是当我将它上传到服务器时它抛出异常“Facet'Precision'不能指定类型'datetime'”。
请让我知道是什么原因。
答案 0 :(得分:3)
日期时间的精度是在MYSQL 5.6版本中添加的,我使用最新的MYSQL生成了实体,因此默认情况下会将精度添加到ssdl。
但是在我的服务器上安装了旧版本的MYSQL服务器。这就是它抛出异常的原因。
现在使用MYSQL服务器5.6,我们可以使用datetime(5),其中5是精度。
因此我们可以在MYSQL中获得日期时间的微秒。
答案 1 :(得分:1)
我也一直认为发布后不能为“日期时间”类型指定“Facet'Precision”错误,但我的问题的原因与OP不同。
我有两个独立的服务器:带有EF5 Web应用程序的' server1 ',带有数据库 server1 引用的' server2 '。在本地计算机上调试应用程序没问题;但在我发布到 server1 后,应用程序在尝试加载时仍然崩溃。经过大量的搜索和测试后,我将其缩小到我的应用程序或MySQL的配置问题。找到这篇文章(谢谢你,用户3275493,回答你自己的问题),我检查了 server2 的MySQL配置,但是它已经已经运行MySQL Server 5.6 即可。为了彻底(实际上这花了我几天才意识到),我决定检查MySQL Connecter并发现我的本地机器是版本6.8.3而 server1 是版本5.6 即可。在我更新了连接器后,我发布了我的网络应用程序,它运行时没有漏洞!
这个错误不仅会导致实体框架和MySQL服务器之间的MySQL版本不一致,还会导致实体框架和MySQL连接器之间的错误!