所以在EF之前,我在Order
的Save()方法中做了类似的事情public void Save(){
//validate
if (this.OrderItems.Count == 0)
throw new Exception ("You need at least one order item");
//so the user code does not have to do this
this.DateTimeModified = DateTime.Now;
saveToDataBase();
//after saving to the DB, the order amount is greater than $3000, notify certain people
if (OrderAmount >= 3000)
notifyPersonell();
}
正如您在上面所看到的,所有内容都很好地封装在Order.Save()中。
这样做最优雅的方式是什么?有人建议在保存在ValidateOrder()之前放入所有内容,然后在AfterOrderSaved()之后放入。这太荒谬了。因此,用户代码必须记住这样做。
order.ValidateOrder();
context.SaveChanges();
order.AfterOrderChanged();
面对封装,它完全过得很快。如果用户代码忘记调用ValidateOrder和AfterOrderChanged?
,该怎么办?提前非常感谢你。