要做一个简单的文档系统,要有文档的更新功能,同时要保留历史版本。
所以我建了两个表,Documents和DocumentUnits,Documents是表示抽象的不分版本的文档,DocumentUnits表示具体的文档。所以Documents与DocumentUnits是1对多的关系。
这样,如果要删除DocumentUnits,当Units删除到0时,就要删除Document对象。
也就是说,怎么做到,只要调用context.DocumentUnits.Remove(documentUnit); context.SaveChanges();就能自动处理这一逻辑呢?我考虑重写SaveChanges()方法,但是不知道怎么写。
context.DocumentUnits.Remove(documentUnit)
这样删除怎么跟Documents 联系起来呢?
先找到 Documents,再在Documents里面找DocumentUnits
类似:
var findDoc=context.Documents.FirstOrDefault(f=>f.Id==1);
if(findDoc!=null)
{
findDoc.DocumentUnits.Remove(documentUnit);
if(findDoc.DocumentUnits.Count()==0)
context.Documents.Remove(findDoc);
context.SaveChanges();
}