kullanarak kaskad silme ile ilgili sorun Ben bir Kişiyi sildiğinizde, silme basamaklandırılmış bir SQLite DB var. Bir kişiyi el ile sildiğimde bu iyi çalışır (PersonID'ye başvuran tüm kayıtlar silinir). Ben Varlık Çerçeve Kişi silmek için kullandığınızda Ama bir hata alıyorum: Bu oluşmasını nedenEntity Framework ve System.Data.SQLite
System.InvalidOperationException: The operation failed: The relationship could not be changed because one or more of the foreign-key properties is non-nullable. When a change is made to a relationship, the related foreign-key property is set to a null value. If the foreign-key does not support null values, a new relationship must be defined, the foreign-key property must be assigned another non-null value, or the unrelated object must be deleted.
anlamıyorum. Tetikleyicim, silinmesi söylenen nesneyi silmeden önce tüm ilgili nesneleri temizlemeye ayarlıdır.
Model düzenleyiciye gittiğimde ve ilişkinin özelliklerini kontrol ettiğimde, OnDelete özelliği için hiçbir eylem göstermiyor. Neden bu, DB'den çekerek doğru şekilde ayarlanmıyor? Bu değeri Cascade olarak değiştirirsem her şey düzgün çalışır, ancak bu el kitabında değişiklik yapmaya dayanmamayı tercih ederim çünkü eğer modelimi DB'den yenersem ve onu kaybederse.
Tablolarım için ilgili SQL var.
CREATE TABLE [SomeTable]
(
[SomeTableID] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
[PersonID] INTEGER NOT NULL REFERENCES [Person](PersonID) ON DELETE CASCADE
)
CREATE TABLE [Person]
(
[PersonID] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT
)
End1 veya End2'yi güncellemeniz gerekecek mi? Yoksa sadece deneme yanılma mı? –
Veritabanınızın modellemesine göre değişir.Eğer bir bire çok ilişki varsa, 'one' sonu ben de aynı konuyu – Omar