我的应用中有一个标准Identity
用户...
public class ApplicationUser : IdentityUser<int, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
{...
...其中Id
为主键。
如何将Id
更改为UserId?
我问这个是因为我有一个应该与AspNetUsers
表连接的表。
我这样做了:
public class ApplicationUser : IdentityUser<int, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
{...
public virtual ICollection<JobApply> JobApplies { get; set; }
JobApply
代码是:
public class JobApply
{...
public int ApplicationUserId { get; set; }
public virtual ApplicationUser ApplicationUser { get; set; }
结果如下:
我想以某种方式使这更好。
我希望UserId
代替Id
,因此两个表中的列都是UserId的名称
有没有办法做到这一点?
答案 0 :(得分:2)
您无法更改名称。 Id在IUser<T>
的扩展系统的最底部定义,所有IdentityUser
实现必须最终继承。
如果不重写所有内容,就无法做到。
您可以更改存储在数据库中的字段名称,但不能更改代码中使用的属性名称。如果您只想更改数据库中列的名称,则只需使用FluentConfiguration来更改属性的名称。
编辑:
在ApplicationContext中,您可以这样做:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<ApplicationUser>()
.Property(p => p.Id)
.HasColumnName("UserId");
}