问题是我在本地sqlite的text
数据类型中有两列CreatedAt
和UpdatedAt
,而在服务器上,这两列是datetimeoffset
数据类型。
当我使用azure的MobileServiceClient
插入/更新任何记录时,除了这两列导致NULL
值之外,所有内容都会进入数据库。
类似地,如果我使用SQLite
连接更新这些列,它会很好地更新记录。然而,当我同步时,azure在服务器上不接受这两列的值。
我尝试过的东西:
- 在这些列中插入所有可能的日期-时间格式,我认为这就是问题所在
- 更改列的数据类型以匹配服务器上的数据类型,但
MobileServiceClient
插入默认日期和时间,即01/01/0001
我很难理解此服务如何在本地和服务器上处理数据。有什么帮助吗?
在服务器上创建表时,它用于设置这两列以自动获取值,而不是从客户端填充。
列的DDL如下所示:
[createdAt] datetimeoffset(3) NOT NULL DEFAULT (CONVERT([datetimeoffset](3),sysutcdatetime(),(0))),
[updatedAt] datetimeoffset(3) NULL,
并且有一个更新At:的触发器
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