假设我的模型看起来像这样(为简单起见,简化了):
public class Deal
{
[Key]
public int DealId { get; set; }
//one Deal may have many pictures
public virtual List<Picture> Pictures { get; set; }
public Deal()
{
Pictures = new List<Picture>();
}
}
每当我想从图片列表中删除特定图片时,我都会执行以下操作:
Deal deal = dealRepository.GetAll().Where(d => d.DealId == id).FirstOrDefault();
deal.Pictures.RemoveAll(p => p.Criterion.Equals(SomeCriterion));
unitOfWork.Commit();
看起来一切正常,但查看 dbms,我看到应该删除的记录仍然存在,但它的外键设置为空。
有没有办法真正删除记录?