SQL Azure联合体和原子单元标识

SQL Azure联合体和原子单元标识,sql,entity-framework,azure,cloud,federation,Sql,Entity Framework,Azure,Cloud,Federation,我已经开始了我的第一个Azure应用程序的开发工作,并且随着时间的推移,我学到了很多东西。我最近发现的一个特性是SQLAzure中的联邦,本质上是SQLAzure分片实现,因此我们可以水平扩展 我的项目开始使用SQL Server,并且已经在很大程度上按照用户配置文件进行了分组,因此我决定在上面进行联合最有意义。我已经创建了联邦,包括所有带有一个障碍的子表-不支持标识。我知道为什么它不被支持,但我不确定用什么来代替它。这似乎是一个其他人必须解决的巨大问题,但我没有找到太多 我可以只使用Uniqu

我已经开始了我的第一个Azure应用程序的开发工作,并且随着时间的推移,我学到了很多东西。我最近发现的一个特性是SQLAzure中的联邦,本质上是SQLAzure分片实现,因此我们可以水平扩展

我的项目开始使用SQL Server,并且已经在很大程度上按照用户配置文件进行了分组,因此我决定在上面进行联合最有意义。我已经创建了联邦,包括所有带有一个障碍的子表-不支持标识。我知道为什么它不被支持,但我不确定用什么来代替它。这似乎是一个其他人必须解决的巨大问题,但我没有找到太多

我可以只使用UniqueIdentifier,但我读到这可能是一个痛苦的分裂。我也不太确定使用GUID作为联邦表的主键会遇到哪些其他性能问题

我将其用于实体框架,但还没有达到使联邦友好的程度。据我所知,这并不比在编写LINQ查询之前执行一些代码来选择您的联合体复杂多少,但当我到达它时,我会跨越这座桥

目前,我不知道如何最好地将项目添加到我的联盟中,因为没有生成标识的好方法


如果您有任何建议,我将不胜感激。

因此我无法回答EF问题。但是我不能评论使用Uniqueidentifier作为密钥类型的想法。在我看来,这是最好的选择。UniqueIdentifier实际上很容易在上拆分。。。人们认为这很难的原因是他们忘记了什么是唯一标识符。我们都知道并且喜欢的GUID是128位整数的十六进制表示。这意味着我们可以对它使用标准的整数运算,因此它实际上和你所知道和喜欢的Int(aut数)一样容易处理

虽然它不是专门关于SQL Azure联合(它是关于Windows Azure存储)的,但我的这篇关于使用GUID类型进行分片的博文应该会告诉你所有你需要知道的


我在使用SQL Azure Federation时使用GUID,它几乎是数据分片时的最佳选择。假设您在许多联合会成员中使用标识,这将导致主值重复。当您需要合并数据或归档时,如何处理这些记录

当数据插入时,人们认为GUID的性能很低,特别是当我们将其用作聚集索引时。但我从未遇到过这个问题。或者我应该说,我们可以做很多调整,而不是这个