Mam następujące dwa podmioty (wśród wielu, ale to daje mi problemu)EF 4.1 Kod Pierwszy klucz obcy dodaje kolumnie Extra
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; }
}
i
public class StartArea
{
public int StartAreaId { get; set; }
public string Description { get; set; }
public ICollection<StartPoint> StartPoints { get; set; }
}
Kiedy pozwalając EF stworzyć mój baza danych narzekała, że muszę wyłączyć usuwanie kaskadowe z powodu wielu ścieżek, co zrobiłem w następujący sposób.
modelBuilder.Entity<StartPoint>()
.HasRequired(x => x.StartArea)
.WithMany()
.HasForeignKey(x => x.StartAreaId)
.WillCascadeOnDelete(false);
Problem jest, gdy baza danych jest tworzona mam dwa klucze obce, jeden nazywa StartAreaId, jak bym się spodziewał, a druga jest StartArea_StartAreaId. Używa się tylko StartAreaId. Dlaczego i jak pozbyć się StartArea_StartAreaId. Jeśli usuwam HasForeignKey w kontekście i usuwam StartAreaId z encji, otrzymuję wiele kolumn StartArea_StartAreaId, jak w StartArea_StartAreaId i StartArea_StartAreaId1. Co muszę zrobić, aby temu zapobiec? Chcę tylko StartAreaId jako mój klucz obcy.
Tak, oczywiście, nie wiem, dlaczego nie myśleć o tym. Dziękuję Ci. – Dirk
Dzięki Ladislav! Korzystały z wielu odpowiedzi, w tym ten. Tyle tylko, że ten problem jest sporadyczny (kolega nie był zmuszony do dostarczenia czegokolwiek w WithMany, ale musiałem (zasłużyłeś na MVP na EF :)) –