【发布时间】:2011-05-10 06:47:45
【问题描述】:
我将 ASP.NET MVC 2 与 nhibernate 一起使用。我有这个 Sales 类。销售有许多付款。一旦销售状态变为已确认,不应修改销售付款。我需要有关如何执行此操作的建议。
在尝试进行此验证时,我遇到了几件事:
- 对于添加和删除付款:
- 我可以在 Sales 中创建 AddPayment 和 DeletePayment 方法,但每个人都必须记住使用这些方法,而不是直接添加和删除付款收款
- 我不想隐藏付款集合,因为 nhibernate 需要它,这个集合也用于软件的其他部分
- 对于修改现有付款:
- 我认为我不应该将验证放在 Payments 设置器中,因为 nhibernate 需要访问设置器。
- 我应该抛出异常吗?有一个 discussion 关于抛出异常以防止对象进入无效状态的缺点。在我的情况下,修改后的对象状态可能仍然有效,但我想阻止修改。在这种情况下抛出异常是否合理?有哪些替代方案?
我应该在控制器操作中强制执行此操作吗?
【问题讨论】:
标签: asp.net-mvc nhibernate validation