我正在尝试将“AspNetUsers”表(由身份实体框架生成)中的外键添加到表“Clients”(由我自己的类使用代码第一实体框架生成),以便生成一个 - 一段关系。
我不知道如何从客户端引用AspNetUsers(因为这不是我模型中的类)。
这是我的代码,首先是我的客户端模型:
namespace TransportNEA.Models
{
public class Client
{
[Key]
public int ClientID { get; set; }
[Required]
public string Name { get; set; }
[Required]
public string Surname { get; set; }
[Required]
[EmailAddress]
public string Email { get; set; }
[Required]
public string PhoneNumber { get; set; }
public virtual List<ClientAddress> Address { get; set; }
//I want to add here a FOREIGN KEY to AspNetUsers table but I don't know how
}
}
我的背景:
namespace TransportNEA.Context
{
public class TNEAContext : DbContext
{
public DbSet<Client> Clients { get; set; }
}
}
AccountViewModels类的注册视图模型:
public class RegisterViewModel
{
[Required]
[Display(Name = "Nombre")]
public string Name { get; set; }
[Required]
[Display(Name = "Apellido")]
public string Surname { get; set; }
[Required]
[Display(Name = "Telefono")]
public string PhoneNumber { get; set; }
[Required]
[EmailAddress]
[Display(Name = "Correo electrónico")]
public string Email { get; set; }
[Required]
[StringLength(100, ErrorMessage = "El número de caracteres de {0} debe ser al menos {2}.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Contraseña")]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirmar contraseña")]
[Compare("Password", ErrorMessage = "La contraseña y la contraseña de confirmación no coinciden.")]
public string ConfirmPassword { get; set; }
[Required]
public int ClientID { get; set; }
[ForeignKey("ClientID")]
public virtual Client Client { get; set; }
}
最后是IdentityModels类:
namespace TransportNEA.Models
{
public class ApplicationUser : IdentityUser
{
[Required]
public int ClientID { get; set; }
[ForeignKey("ClientID")]
public virtual Client Client { get; set; }
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
{
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
}
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("IdentityConnection", throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
}
我厌倦了尝试自己解决这个问题,有人可以告诉我,我需要修改或添加什么才能使其正常工作? 另外正如您在AspNetUsers中创建条目时所看到的,我想在客户端中创建一个条目并将它们关联起来
PS:我必须使用迁移才能使项目有效 (因为我收到一个可能导致约束的错误 “双关系”,我需要设置“删除无操作”而不是 级联,但我不知道如何使用流畅的API,这就是我使用的原因 迁移。为了生成数据库,我正在使用我的上下文 TNEAContext(不是ApplicationDbContext)