我在我的MVC5项目中使用ASP.NET Identity 2.0,并希望将AspNetUsers的id字段的数据类型从字符串(GUID)更改为int,因为我有一些与AspNetUsers表相关的表。我在How to change type of id in Microsoft.AspNet.Identity.EntityFramework.IdentityUser上查看了许多页面,但似乎并不容易应用。另一方面,我看到改变AspNetUsers实体的id字段的数据类型是不够的,因为在其他身份类型之间存在一些pk / fk关系,即AspNetUserRoles,ApplicationGroupRoles等。在这种情况下,我应该使用身份表的原始数据类型,并将我的表的id类型从int更改为string?或者,如何在ASP.NET Identity 2.0中轻松更改所有标识表的数据类型?如果在3.0版本中这更容易,我也可以使用它。
答案 0 :(得分:0)
我想扩展我的评论,因为几个月前我也试图这样做。
在我的情况下,我不确定我是否可以创建关系string
- > int
,首先从数据库中提取,并用于创建productId(int)和userId(int)之间的关系,我想要全部使用int id。
你可以让userId
像string
一样,并创建像这样的关系;
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