Varlığımdan birinde tersine gezinme konusunda sorun yaşıyorum.Entity Framework Fluent API'si ile birebir ilişki
Ben şu iki nesne vardır:
public class Candidate
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long CandidateId { get; set; }
....
// Reverse navigation
public virtual CandidateData Data { get; set; }
...
// Foreign keys
....
}
public class CandidateData
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long CandidateDataId { get; set; }
[Required]
public long CandidateId { get; set; }
// Foreign keys
[ForeignKey("CandidateId")]
public virtual Candidate Candidate { get; set; }
}
Şimdi CandidateData nesne üzerinde benim yabancı anahtar navigasyon çalışıyor
. Aday nesnenin çalışması için geri navigasyonu almamda sorun yaşıyorum (eğer mümkünse). Ben CandidateId bağlantı veren iki sütun olsun Bu veritabanında dışında çalışan yakınprotected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
modelBuilder.Entity<Candidate>()
.HasOptional(obj => obj.Data)
.WithOptionalPrincipal();
base.OnModelCreating(modelBuilder);
}
:
Bu benim OnModelCreating fonksiyonudur. POCO nesnesinden bir tane aldığımda, bir başka sütun aldığım Candidate_CandidateId modelBuilder tarafından yaratıldığını varsayıyorum.
Şu anda sessizim. Birisi neler olup bittiğine biraz ışık tutabilir mi?
Neden [Zorunlu] public long CandidateId {get; set; } Onu kaldırın ve sorunlarınız gitmiş olacak –
Bence ilişkiniz modelBuilder.Entity() .HasOptional (obj => obj.Data) olmalıdır .WithRequired (e => e.Candidate); BTW: akıcı api ve niteliklerini karıştırmaya çalışmayın. –
tschmit007