Azure移动服务中的日期时间同步问题

问题描述 投票:2回答:1

问题是我在本地sqlite的CreatedAt数据类型中有2列UpdatedAttext,在服务器上,这两列是datetimeoffset数据类型。

[当我使用天蓝色的MobileServiceClient插入/更新任何记录时,除这两列外,所有内容都进入数据库,从而产生NULL值。

类似地,如果我使用SQLite连接来更新这些列,它会更新记录。但是,当我同步时,azure不会在服务器上获取这两列的值。

我尝试过的事情:

  • 在这些列中插入日期时间的所有可能格式,我认为是问题所在。
  • 更改列的数据类型以匹配服务器上的数据类型,但MobileServiceClient插入默认日期和时间为01/01/0001

我在理解此服务如何在本地和服务器上处理数据时遇到麻烦。有帮助吗?

c# sqlite azure xamarin.forms azure-mobile-services
1个回答
0
投票

在服务器上创建表时,它用来设置这两列以自动获取值,而不是从客户端填充。

列的DDL看起来像这样:

[createdAt] datetimeoffset(3) NOT NULL DEFAULT (CONVERT([datetimeoffset](3),sysutcdatetime(),(0))), [updatedAt] datetimeoffset(3) NULL,

并且有一个updateAt的触发器:

CREATE TRIGGER [DbName].[TR_TableName_InsertUpdateDelete] ON [DbName].[TableName]
WITH EXECUTE AS CALLER
AFTER INSERT, UPDATE, DELETE
AS
        BEGIN
            UPDATE [DbName].[TableName] SET [DbName].[TableName].[updatedAt] = CONVERT (DATETIMEOFFSET(3), SYSUTCDATETIME())
            FROM INSERTED
            WHERE INSERTED.id = [DbName].[TableName].[id]
        END
GO
© www.soinside.com 2019 - 2024. All rights reserved.