8

Tablo bölme işlemini EF Code First ile nasıl eşleştirebilirim? EDMX için tablo bölme, örneğin here tarif edilmektedir. Aynı tabloya 1: 1 ilişkisiyle iki varlığın eşleştirilmesine izin verir. entity and complex type ile benzer haritalamayı yapabileceğimi biliyorum, ancak büyük fark, karmaşık tipin, tablo bölme işleminin temel nedeni olan tembel yüklü (veya hiç yüklenmemiş) olmamasıdır.EF Kodunda tablo bölme nasıl eşlenir?

cevap

10

İlk önce EF 4.1 (RC) kod ilkinde Tablo bölme işlemini nasıl yapacağım.

  1. İki varlığınızı tanımlayın. Anahtarı her iki öğeye de dahil ettiğinizden emin olun. Ayrıca, diğer varlığa işaret eden her bir varlığın gezinme özelliklerini de ekleyin. OnModelCreating geçersiz kılma işleminde
  2. . . . a. Her iki varlığı da aynı tabloya eşleyin. b. İki tablo arasındaki ilişkiyi yarat.

    modelBuilder.Entity<EntityOne>().ToTable("MySingleTable"); 
        modelBuilder.Entity<EntityTwo>().ToTable("MySingleTable"); 
    
        modelBuilder.Entity<EntityOne>().HasRequired(p => p.NavToEntityTwo).WithRequiredDependent(c => c.NavToEntityOne); 
    

Bu benim için çalışıyor, ama bu sadece sınırlı ve basit senaryolara bakmak mümkün oldum RC yeniliği verilir farkında.

+0

Bunu zaten denedim ve işe yaramadı. Tekrar deneyeceğim ve bilmeni istiyorum. –

+0

Ne şekilde çalıştığını açıklayabilir misiniz? Akla gelen bir şey, veritabanının birincil anahtar değerini üretmemesidir. Bunun yerine, koddaki anahtar değerini ayarlıyorum ve SaveChanges'i çağırmadan önce değeri hem birinci varlık hem de ikinci öğeye eklemem gerektiğini buldum. –

+0

Çalışıyor. Denediğimde neyi yanlış yapılandırdığımı bilmiyorum. Ayrıca, otomatik olarak oluşturulmuş kimliğin yanı sıra yalnızca yönerge üzerinde gezinme özelliğinin kullanıldığı MSDN forumunda da yanıt aldım: http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/71da8ea5-7e34-4f7b -941b-ccb1a5a26ea7 / –