我有我的.hbm.xml文件中的.hbm.xml文件唯一不加例外
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
namespace="Core.Domain.Model"
assembly="Core">
<class name="Category" table="Categories" dynamic-update="true">
<cache usage="read-write"/>
<id name="Id" column="Id" type="Guid">
<generator class="guid"/>
</id>
<property name="Name" length="100">
<column name="Name" unique="true" index="IX_Category"/>
</property>
</class>
</hibernate-mapping>
我有下面的代碼下面,不過,我可以看到,也不例外當我爲名稱字段插入重複值時正在引發。爲什麼?
void IRepository<Category>.Save(Category entity)
{
using (var scope = new TransactionScope(TransactionScopeOption.Required))
{
using (ISession session = NHibernateHelper.OpenSession())
{
using (ITransaction transaction = session.BeginTransaction())
{
session.Save(entity);
transaction.Commit();
}
}
scope.Complete();
}
}
謝謝,我修改了數據庫,但現在我有錯誤消息違反UNIQUE KEY約束'UQ__Categories__0EA330E9'。無法在對象'dbo.Categories'中插入重複鍵。該語句已被終止,但是,我寧願有NHibernate產生的錯誤信息,(e.InnerException.Message,即類似Message =「不能在對象'dbo.Categories'中插入具有唯一索引'IX_Category'的重複鍵行\ r \ n此語句已終止。「......我寧願NHibernate的生成拋出異常消息 – learning 2010-09-17 07:03:45
像JoeBilly說,考慮NHibernate的驗證。然後,您可以讓NHibernate的檢查唯一扔任何你想要的。 – rebelliard 2010-09-17 12:06:37