Entity framework 实体保存前后的业务逻辑处理

Entity framework 实体保存前后的业务逻辑处理,entity-framework,Entity Framework,所以在EF之前,我在顺序的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

所以在EF之前,我在顺序的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之前放置所有内容,在保存到AfterOrder之后放置所有内容。这是荒谬的。因此,用户代码必须记住这样做

order.ValidateOrder();
context.SaveChanges();
order.AfterOrderChanged();
这完全与封装背道而驰。如果用户代码忘记调用ValidateOrder和AfterOrderChanged怎么办


提前非常感谢。

Ermmm??做你不再做的事情的最优雅的方式?使用EF,您肯定不会有订单。保存方法。请详细说明。当然,我不会有订单。请在EF中保存更多订单。那么,如何在订单保存之前和之后强制执行我想要强制执行的业务规则呢?您可能会有一些服务方法SaveOrder来完成所有这些。但这是一个相当宽泛的问题。我希望它不是那么宽泛。我是不是看错了?每次保存订单时,我都希望在保存前后强制执行关键业务规则。