Jika Anda benar-benar ingin menggunakan Dihapus, Anda harus membuat kunci asing Anda nullable, tetapi kemudian Anda akan berakhir dengan catatan yatim (yang merupakan salah satu alasan utama Anda tidak boleh melakukan itu di tempat pertama). Jadi gunakan sajaRemove()
ObjectContext.DeleteObject (entitas) menandai entitas sebagai Dihapus dalam konteks. (EntityState dihapus setelah itu.) Jika Anda memanggil SaveChanges setelah itu EF mengirim pernyataan SQL DELETE ke database. Jika tidak ada batasan referensi dalam basis data yang dilanggar, entitas akan dihapus, jika tidak maka pengecualian dilemparkan.
EntityCollection.Remove (childEntity) menandai hubungan antara induk dan childEntity sebagai Dihapus. Jika childEntity sendiri dihapus dari basis data dan apa yang sebenarnya terjadi ketika Anda memanggil SaveChanges tergantung pada jenis hubungan antara keduanya:
Satu hal yang patut dicatat adalah bahwa pengaturan .State = EntityState.Deleted
tidak memicu perubahan yang terdeteksi secara otomatis. ( arsip )