Я новичок в asp.net mvc и структуре сущности, поэтому я действительно мог бы использовать некоторую помощь.ASP.NET MVC 5 отношение один к одному с помощью ApplicationUser
Я хочу, чтобы новый класс реализовывался в классе IdentityUser с отношением один к одному. Теперь у меня есть это:
public class ApplicationUser : IdentityUser
{
public virtual MapPosition MapPosition { get; set; }
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
{
// Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
// Add custom user claims here
return userIdentity;
}
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public DbSet<MapPosition> MapPositions { get; set; }
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
public class MapPosition
{
[Key, ForeignKey("ApplicationUser")]
public string UserId { get; set; }
public virtual ApplicationUser ApplicationUser { get; set; }
public int PositionX { get; set; }
public int PositionY { get; set; }
}
Все замечательно, новая таблица была создана, но как я могу сделать это так, каждый раз, когда новый пользователь создается приложение, также создает запись MapPosition со значениями 0 по умолчанию для обоих свойств?
Если 'UserId' является' Key' для 'MapPosition', почему бы не переместить два свойства внутри' ApplicationUser'? –
Потому что я планирую сделать больше таких классов, и я не хочу иметь все в одном классе. – user3662546