我正在通过this msdn article by noted DDD expert Udi Dahan,他在那里做了一个很棒的观察,他说他花了好几年才意识到; “将所有电子邮件地址存入内存可能会让你被性能警察锁定,即使域模型调用某个调用数据库的服务来查看电子邮件地址是否是不必要的。在数据库中就足够了。“使用db来防止UI演示文稿中的错误
在捕获一些添加或编辑场景的LOB表示中,在所有编辑被认为是有效的之前,您将不会启用保存类型操作,因此首先要做到这一点是需要启用“保存”准备通知用户是否违反唯一性约束。但是如何用NHibernate来做到这一点呢?
我想它需要遵循下面的伪代码的行。现在有人有这样的做法吗?
干杯,
Berryl
try {}
catch (GenericADOException)
{
// "Abort due to constraint violation\r\ncolumn {0} is not unique", columnName)
//(1) determine which db column violated uniqueness
//(2) potentially map the column name to something in context to the user
//(3) throw that can be translated into a BrokenRule for the UI presentation
//(4) reset the nhibernate session
}
fyi当一个唯一的约束被破坏时,可能会出现一个更具体的异常。 – 2010-07-14 14:54:40