在SQL server db中,我在Departments表中有一个Name列,nvchar(25)不为null,唯一。我测试看看如果我尝试保存一个名称大于该值的部门会发生什么,并得到一个“NHibernate.Exceptions.GenericADOException”,明确表示“”字符串或二进制数据将被截断“。到目前为止,所以好。
在另一个表中,我在Projects表中有一个Description列,其中nvchar(50)不为null,但没有唯一约束。我通过完全相同的测试(当然确保描述大于50),但没有抛出任何异常......
我更喜欢非常明确的例外,但我会满足于理解规则是什么。另外,NHib例外的具体程度往往是跨越不同的数据库。我错过了什么?
干杯,
Berryl
我的错!我使用的是使用SqlLite而不是SqlServer的测试夹具。这是我首先停止使用SqlLite的原因之一(必须有这么多聪明人似乎喜欢它的原因,但它对验证nhibernate映射IMO没用。)
谢谢!
答案 0 :(得分:2)
答案 1 :(得分:0)
这些错误是由MS SQL Server发出的,而不是由nHibernate发出的。您应该尝试使用SQL Server Management Studio直接运行一些查询来确定发生了什么。