特别提到 WAMS 需要一个 int ID 列才能在 SQL Azure 中工作。但是,在分布式数据库上开发企业应用程序时,GUID 是首选的主键。如何避开 int ID 列并支持 GUID?
如果无法做到这一点,那么如何从运行使用 WAMS 的应用程序的各种平板电脑/移动设备上的多个独立数据库同步云上的数据?
特别提到 WAMS 需要一个 int ID 列才能在 SQL Azure 中工作。但是,在分布式数据库上开发企业应用程序时,GUID 是首选的主键。如何避开 int ID 列并支持 GUID?
如果无法做到这一点,那么如何从运行使用 WAMS 的应用程序的各种平板电脑/移动设备上的多个独立数据库同步云上的数据?
关于这个问题的更新——截至上周,移动服务现在支持任意字符串作为列的 id——查看这篇文章以获取更多信息。您现在可以插入具有“id”值的数据(以前不能),因此您可以在插入时使用 Guid 值。此外,如果您在插入时未在 Id 列上发送任何内容(或该值设置为null
),则默认情况下,服务器将为该列生成唯一标识符。
目前,我认为在ID列中使用 GUID 是不可能的。移动服务服务器端脚本的文档指定删除函数的ID必须是 javascript Number类型。据我所知,所有可用的示例代码以及您可以从门户下载的代码都非常明确地使用整数类型作为ID。
每当创建新记录时,您都必须想出一种生成唯一整数值的方法。此处的示例在插入脚本中使用了滴答计数,这对于低容量应用程序来说可能是可以的,但它需要变得更加健壮,可能通过根据用户的身份生成一个数字并将其与滴答计数结合起来。
我对此有点晚了,但我发现您可以使用 GUId 作为移动服务表的主键。不过有几点。将 JSON 属性设置为小写“id”并使用可为空的 guid,这允许在 id 列 ( NewId()
)上有默认值时插入
[JsonProperty(PropertyName = "id")]
public Guid? Id { get; set; }
灰..