У меня есть Issue
сущность, имеющая 2 поля от FK
до User
сущности, как показано ниже.Хотя я правильно настроил свойства для предотвращения создания дополнительных полей Xxx_Id
вместо PropertyNameId
, в таблице создано поле Xxx_Id
помимо полей PropertyNameId
.В этом примере поле User_Id
создается в таблице Issue
помимо полей AssigneeId
и ReporterId
.Здесь есть какая-то ошибка?HashSet
в сущности User
вызывает это дополнительное поле User_Id
?
Проблема:
public class Issue : BaseEntity
{
[Key]
public int Id { get; set; }
//Foreign key for Reporter (User entity)
public short ReporterId { get; set; }
//Foreign key for Assignee (User entity)
public short AssigneeId { get; set; }
[ForeignKey("ReporterId")]
public virtual User Reporter { get; set; }
[ForeignKey("AssigneeId")]
public virtual User Assignee { get; set; }
}
Пользователь:
public class User : BaseEntity
{
[Key]
public short Id { get; set; }
public string UserName { get; set; }
public string Email { get; set; }
//code omitted for brevity
public User()
{
Issues = new HashSet<Issue>();
//code omitted for brevity
}
public virtual ICollection<Issue> Issues { get; set; }
//code omitted for brevity
}
Вот соответствующие строки в файле миграции:
CreateTable(
"Issue",
c => new
{
Id = c.Int(nullable: false, identity: true),
ReporterId = c.Short(nullable: false),
AssigneeId = c.Short(nullable: false),
User_Id = c.Short() //???
})
.PrimaryKey(t => t.Id)
.ForeignKey("com.User", t => t.User_Id) //???
.ForeignKey("com.User", t => t.AssigneeId)
.ForeignKey("com.User", t => t.ReporterId)
.Index(t => t.ReporterId)
.Index(t => t.AssigneeId)
.Index(t => t.User_Id); //???