मैं पहले ईएफ कोड का उपयोग कर रहा हूं। एक साधारण मॉडल:इकाई फ्रेमवर्क डीबीकॉन्टेक्स्ट .रोम (ओबीजे) बनाम इंन्ट्री (ओबीजे) .टेट = एंटीटीस्टेट। हटाया गया
item { public int Id {set; get;},... ,ICollection<ItemImages> {set; get;} }
itemImages {
public int Id {set; get; },
public int ItemId {set; get; }
, ... ,
public Item Item {set; get; }
}
ItemConfig:EntityTypeConfiguration<Item>
{
//some config statement;
//...
// mark child delete when parent delete: waterfall delete.
HasRequired(rs => rs.ItemCat).WithMany(rs => rs.Items).HasForeignKey(rs => rs.ItemCatId).WillCascadeOnDelete(true);
}
जब निकालें() द्वारा नष्ट इकाई, यह आइटम और संबंधित बच्चे (आइटम छवियों रिकॉर्ड) अच्छी तरह से हटा दें।
_db.Item.Remove(DeleteThisObj);
_db.SaveChanges();
लेकिन निशान इसे हटाने के लिए जब:
_db.Entry(DeleteThisObj).State = EntityState.Deleted;
_db.SaveChanges();
प्राप्त त्रुटि:
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.
संभावित डुप्लिकेट [इकाई की रूपरेखा .remove() बनाम .DeleteObject()] (http://stackoverflow.com/questions/17723626/entity-framework- हटाएं-बनाम डिलीटोजेक्ट) –