У меня есть две следующие сущности (среди многих, но они вызывают у меня проблемы)
public class StartPoint
{
public int StartPointId { get; set; }
public string Description { get; set; }
public int StartPointNumber { get; set; }
public int StartAreaId { get; set; }
public StartArea StartArea { get; set; }
}
и
public class StartArea
{
public int StartAreaId { get; set; }
public string Description { get; set; }
public ICollection<StartPoint> StartPoints { get; set; }
}
. Когда я разрешил EF создать мою базу данных, он пожаловался, что мне нужно отключить каскадное удаление из-за несколько путей, что я сделал следующим образом:
modelBuilder.Entity<StartPoint>()
.HasRequired(x => x.StartArea)
.WithMany()
.HasForeignKey(x => x.StartAreaId)
.WillCascadeOnDelete(false);
Проблема в том, что при создании базы данных я получаю два внешних ключа, один из которых называется StartAreaId, как я ожидал, а другой - StartArea_StartAreaId. Используется только StartAreaId. Почему и как мне избавиться от StartArea_StartAreaId. Если я удалю HasForeignKey в контексте и удалю StartAreaId из объекта, я получу несколько столбцов StartArea_StartAreaId, как в StartArea_StartAreaId и StartArea_StartAreaId1. Что мне нужно сделать, чтобы этого не произошло? Мне просто нужен StartAreaId в качестве внешнего ключа.