Asp.net 身份:为什么聚集索引在 guid (nvarchar) 列上以及如何更改它?
Asp.net identity: Why the clustered index is on guid (nvarchar) column and how to change this?
Asp.net 标识将主键创建为具有聚簇索引的 nvarchar(128)。
基于 http://www.sqlskills.com/blogs/kimberly/guids-as-primary-keys-andor-the-clustering-key/ 我想
- 更新我的应用程序,使聚集索引列位于 int
- 将主键存储从 guid 更改为 int。
你有什么建议?
如果第一个解决方案是可行的方法,那么 entity framework 是否提供了一种实现方法?
ASP.NET Identity - How to change the dbo.AspNetUsers.Id into a nonclustered index? 是唯一的方法吗
对于 #2,如果您不需要(或不想)使用 GUID 作为主键,您可以像这样将它们更改为整数:
public class ApplicationUser : IdentityUser<int, ApplicationUserLogin,
ApplicationUserRole, ApplicationUserClaim>
{
}
public class ApplicationUserLogin : IdentityUserLogin<int>
{
}
public class ApplicationUserClaim : IdentityUserClaim<int>
{
}
public class ApplicationRole : IdentityRole<int, ApplicationUserRole>
{
}
public class ApplicationUserRole : IdentityUserRole<int>
{
}
然后像这样声明您的 DbContext:
public class MyContext: IdentityDbContext<ApplicationUser, ApplicationRole, int,
ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
{
}
Asp.net 标识将主键创建为具有聚簇索引的 nvarchar(128)。 基于 http://www.sqlskills.com/blogs/kimberly/guids-as-primary-keys-andor-the-clustering-key/ 我想
- 更新我的应用程序,使聚集索引列位于 int
- 将主键存储从 guid 更改为 int。
你有什么建议?
如果第一个解决方案是可行的方法,那么 entity framework 是否提供了一种实现方法?
ASP.NET Identity - How to change the dbo.AspNetUsers.Id into a nonclustered index? 是唯一的方法吗
对于 #2,如果您不需要(或不想)使用 GUID 作为主键,您可以像这样将它们更改为整数:
public class ApplicationUser : IdentityUser<int, ApplicationUserLogin,
ApplicationUserRole, ApplicationUserClaim>
{
}
public class ApplicationUserLogin : IdentityUserLogin<int>
{
}
public class ApplicationUserClaim : IdentityUserClaim<int>
{
}
public class ApplicationRole : IdentityRole<int, ApplicationUserRole>
{
}
public class ApplicationUserRole : IdentityUserRole<int>
{
}
然后像这样声明您的 DbContext:
public class MyContext: IdentityDbContext<ApplicationUser, ApplicationRole, int,
ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
{
}