Код EF 4.1 Первый внешний ключ добавляет дополнительный столбец

У меня есть две следующие сущности (среди многих, но они вызывают у меня проблемы)

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 в качестве внешнего ключа.

5
задан Ladislav Mrnka 27 June 2011 в 08:16
поделиться