Varlık çerçevesine sahip bir varlığı kaydettiğimde, doğal olarak bunun yalnızca belirtilen varlığı kurtarmaya çalışacağını varsaydım. Ancak, o varlığın alt varlıklarını da kurtarmaya çalışıyor. Bu, her türlü bütünlük sorununa neden oluyor. EF'yi yalnızca kaydetmek istediğim varlığı kaydetmeye ve bu nedenle tüm alt nesneleri yoksaymaya nasıl zorlarım?
Özellikleri el ile null olarak ayarlarsam, bir hata alıyorum "İşlem başarısız oldu: Bir veya daha fazla yabancı anahtar özelliği null yapılamaz olduğundan ilişki değiştirilemedi." Bu, alt nesneyi özellikle null olarak ayarladığım için, EF onu yalnız bıraktığından, son derece ters etki yaratıyor.
Neden alt nesneleri kaydetmek / eklemek istemiyorum?
Bu, yorumlarda ileri geri tartışıldığı için, çocuğumun nesnelerinin neden yalnız bırakılmasını istediğime dair bazı gerekçeler vereceğim.
Oluşturduğum uygulamada, EF nesne modeli veritabanından yüklenmiyor, düz bir dosyayı ayrıştırırken doldurduğum veri nesneleri olarak kullanılıyor. Alt nesneler söz konusu olduğunda, bunların çoğu, ana tablonun çeşitli özelliklerini tanımlayan arama tablolarına atıfta bulunur. Örneğin, birincil varlığın coğrafi konumu.
Bu nesneleri kendim doldurduğum için, EF bunların yeni nesneler olduğunu ve üst nesneyle birlikte eklenmesi gerektiğini varsayar. Ancak, bu tanımlar zaten var ve veritabanında kopyalar oluşturmak istemiyorum. Bir arama yapmak ve ana tablo varlığımdaki yabancı anahtarı doldurmak için yalnızca EF nesnesini kullanıyorum.
Gerçek veri olan alt nesnelerle bile, önce ebeveyni kaydetmem ve bir birincil anahtar almam gerekiyor, yoksa EF, işleri berbat ediyor gibi görünüyor. Umarım bu biraz açıklama getirir.