ekler aşağıdaki İki varlık vardır (birçok arasında, ancak bu bana sorunu vermek)EF 4.1 Kod İlk Yabancı Anahtar Ekstra sütununu
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; }
}
ve
public class StartArea
{
public int StartAreaId { get; set; }
public string Description { get; set; }
public ICollection<StartPoint> StartPoints { get; set; }
}
EF oluşturmasına izin yaparken benim veritabanı, aşağıdaki gibi yapmış olduğum çoklu yollar nedeniyle kaskad silme işlemini kapatmam gerektiğinden şikayet etti. Veritabanı iki yabancı anahtarlarını almak oluşturulur
modelBuilder.Entity<StartPoint>()
.HasRequired(x => x.StartArea)
.WithMany()
.HasForeignKey(x => x.StartAreaId)
.WillCascadeOnDelete(false);
sorundur, bir ben beklendiği gibi, StartAreaId denir ve diğer StartArea_StartAreaId mesafesindedir. Sadece StartAreaId kullanılıyor. Neden ve nasıl StartArea_StartAreaId'den kurtulurum. HasForeignKey'i bağlamda kaldırırsam ve StartAreaId öğesini varlıktan kaldırırsam, StartArea_StartAreaId ve StartArea_StartAreaId1'de olduğu gibi birden çok StartArea_StartAreaId sütunu alırım. Bunu önlemek için ne yapmam gerekiyor? Ben sadece StartAreaId'i yabancı anahtarım olarak istiyorum.
Evet, tabii ki, bilmiyorum. Teşekkür ederim. – Dirk
Teşekkürler Ladislav! Bunun dahil birçok cevabınızdan faydalanın. Sadece gözlem şu ki, bu sorun aralıklı (meslektaşım WithMany'de bir şey sağlamaya zorlanmadı, ama mecbur kaldım (MVP'yi EF'de hak ettiniz :)) –