asp.net mvc-将id类型从字符串(GUID)更改为int后可能出现的问题



我在MVC5项目中使用ASP.NET Identity 2.0,并希望将AspNetUsers的id字段的数据类型从字符串(GUID)更改为int,因为我有一些表与AspNetUsers表相关。我看了很多关于如何在Microsoft.AspNet.Identity.EntityFramework.IdentityUser中更改id类型的页面,但它似乎不容易应用。另一方面,我发现仅仅更改AspNetUsers实体的id字段的数据类型是不够的,因为其他标识类型(如AspNetUserRoles、ApplicationGroupRoles等)之间存在一些pk/fk关系。在这种情况下,我应该使用标识表的原始数据类型,并将表的id类型从int更改为string吗?或者,如何在ASP.NET identity 2.0中轻松更改所有标识表的数据类型?如果这在3.0版本中更容易,我也可以使用它。

我想扩展我的评论,因为几个月前我也在尝试这样做。

在我的情况下,我不确定我是否可以创建关系string->int,首先从数据库中混合,并用于创建productId(int)和userId(int。

Mate你可以让userIdstring一样创建这样的关系;

public class Customer
{
  public int Id {get;set;}
  public string Name {get;set;}
  public string SalesManId {get;set;}
  [ForeignKey("SalesManId ")]
  public virtual ApplicationUser SalesMan {get;set;}
}

这里是Customer实体,我已经声明了一个导航属性!因此,SalesManId属于string类型。通过这种方式,您可以使用ApplicationUser类创建所有关系。

如果你仍然想更改为int,这里有一个youtube教程,我几个月前就遵循了这个教程,我设法将字符串更改为int

YouTube教程如何将UserId从字符串更改为int

最新更新