Gerçekten Silinmiş'i kullanmak istiyorsanız, yabancı anahtarlarınızı boş bırakmanız gerekir, ancak daha sonra artık kayıtlarla sonuçlanırsınız (bu, ilk etapta yapmamanız gereken temel nedenlerden biridir). Sadece kullanRemove()
ObjectContext.DeleteObject (entity) , varlığı bağlamda Silindi olarak işaretler. (Bundan sonra EntityState silinir.) Sonra SaveChanges çağırırsanız EF veritabanına bir SQL DELETE deyimi gönderir. Veritabanındaki hiçbir referans kısıtlaması ihlal edilmezse varlık silinir, aksi takdirde bir istisna atılır.
EntityCollection.Remove (childEntity) , parent ve childEntity arasındaki ilişkiyi Silindi olarak işaretler. ChildEntity'nin kendisi veritabanından silinirse ve SaveChanges'i çağırdığınızda tam olarak ne olursa, ikisi arasındaki ilişkinin türüne bağlıdır:
Dikkate değer bir şey, ayarın .State = EntityState.Deleted
otomatik olarak algılanan değişikliği tetiklememesidir. ( arşiv )