我们正在创建一个WebApi 2.2服务,并且正在使用上面列出的技术。我们的后端数据存储是MySql 5.6。我们正在使用dotConnect for MySql来处理数据存储。在数据库中,有一个带有时间戳类型的RowVersion列。在EF中,我成功生成了模型,但是我注意到RowVersion设置为DateTime。当我运行WebApi时,遇到以下运行时异常,因此我需要将类型更改为DateTimeOffset,因为Timestamp不可用。

在我们的应用程序中,我们将使用带有ETag的RowVersion进行并发处理。因此,我们将仅在我们的应用程序中读取RowVersion。每当插入或更新发生时,数据库将自动更新RowVersion。

我不知道如何解决此问题...也许,有某种方法可以添加自动类型转换,因此模型中的RowVersion是Int64,我们可以通过将Timestamp.value发送给我们来自动在Int64和Timestamp之间进行转换。应用。我们只是在阅读它,因此这似乎是合理的。

当我在EF模型中将RowVersion更改为Int64并构建应用程序时,出现以下错误:



非常感谢您的帮助,以帮助您解决此问题。

感谢您的时间和建议,

麦克风

在此发布的开头提到的异常:

最佳答案

我认为,从最新版本的WebApi OData v4(5.4.0)开始,一定程度上支持DateTime。它仍然在元数据中定义为DateTimeOffset,但是至少您的模型可以处理DateTime。有关更多详细信息,请参见http://odata.github.io/WebApi/datetime-support/

关于mysql - 不支持类型System.DateTime。更改为使用System.DateTimeOffset,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25187630/

10-12 12:45