У меня есть объект класса для таблицы пользователей:
[Table("Users", Schema = "Membership")]
public class User
{
public User()
{
}
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
[Required]
[StringLength(450)]
[Index(IsUnique = true)]
public string Username { get; set; }
[Required]
public string Password { get; set; }
[Required]
public string Email { get; set; }
public int? StateID { get; set; }
[ForeignKey("StateID")]
public virtual Place.State State { get; set; }
}
и связанные с классовым состоянием
[Table("States", Schema = "Place")]
public class State
{
public State()
{
}
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }
[Required(ErrorMessage = "Please enter name")]
public string Name { get; set; }
}
но после того, как я обновлю базу данных, я вижу, что добавлен новый дополнительный ключ State_Id, мой внешний ключ определил StateID в коде, но вы можете видеть, что окончательная таблица имеет 2 иностранных ключа в базе данных таблицы.

Может быть, вы определили дополнительный внешний ключ в своей процедуре OnModelCreating?
после запуска команды add-migration мы можем изменить скрипт миграции?
в OnModelCreating я не имею отношения к этой таблице или связанным только с этой базой.OnModelCreating (modelBuilder); modelBuilder.Conventions.Remove <OneToManyCascadeDeleteConvention> ();
теперь я вижу в OnModelCreating отношение к родительскому текущему классу для affiliateid modelBuilder.Entity <Model.Membership.User> () .HasOptional (c => c.Affiliate) .WithMany () .HasForeignKey (c => c.AffiliateID) ; может быть добавлено для этого отношения? но почему бы не добавить другое отношение





База данных обновления будет выполнять sql-запросы / команды из файлов миграции, проверьте методы "Up" последних миграций.