无法使用复合ID在Hibernate中执行删除

时间:2011-03-07 09:23:43

标签: nhibernate

我已经为我的班级添加了一个复合ID。 添加新行工作正常。 但删除项目会导致Excepion:

  

System.Collections.Generic.KeyNotFoundException未被用户代码处理     消息=字典中没有给定的键。     来源= mscorlib程序     堆栈跟踪:          在System.Collections.Generic.Dictionary`2.get_Item(TKey key)          at NHibernate.Engine.StatefulPersistenceContext.RemoveEntity(EntityKey key)在d:\ CSharp \ NH \ nhibernate \ src \ NHibernate \ Engine \ StatefulPersistenceContext.cs:第434行          位于d:\ CSharp \ NH \ nhibernate \ src \ NHibernate \ Action \ EntityDeleteAction.cs中的NHibernate.Action.EntityDeleteAction.Execute():第87行          位于d:\ CSharp \ NH \ nhibernate \ src \ NHibernate \ Engine \ ActionQueue.cs中的NHibernate.Engine.ActionQueue.Execute(IExecutable可执行文件):第136行          位于d:\ CSharp \ NH \ nhibernate \ src \ NHibernate \ Engine \ ActionQueue.cs中的NHibernate.Engine.ActionQueue.ExecuteActions(IList列表):第126行          at NHibernate.Engine.ActionQueue.ExecuteActions()在d:\ CSharp \ NH \ nhibernate \ src \ NHibernate \ Engine \ ActionQueue.cs:第174行          在d:\ CSharp \ NH \ nhibernate \ src \ NHibernate \ Event \ Default \ AbstractFlushingEventListener.cs中的NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions(IEventSource会话):第241行          在d:\ CSharp \ NH \ nhibernate \ src \ NHibernate \ Event \ Default \ DefaultFlushEventListener.cs中的NHibernate.Event.Default.DefaultFlushEventListener.OnFlush(FlushEvent事件):第19行          在DG:\ CSharp \ NH \ nhibernate \ src \ NHibernate \ Impl \ SessionImpl.cs中的NHibernate.Impl.SessionImpl.Flush():第1479行          at NHibernate.Transaction.AdoTransaction.Commit()在d:\ CSharp \ NH \ nhibernate \ src \ NHibernate \ Transaction \ AdoTransaction.cs:第187行          在C:_svn \ spring-net \ tags \ spring-net-1.3.1 \ src \ Spring \ Spring.Data.NHibernate \ Data \ NHibernate \ HibernateTransactionManager.cs中的Spring.Data.NHibernate.HibernateTransactionManager.DoCommit(DefaultTransactionStatus status) :第576行          在Spring.Transaction.Support.AbstractPlatformTransactionManager.ProcessCommit(DefaultTransactionStatus status)     InnerException:

我的映射文件如下所示:

<composite-id>
  <key-many-to-one name="X1" lazy="proxy" class="X1, X1" column="X1" />
  <key-many-to-one name="X2" lazy="false" class="X2, X2" column="X2" />
</composite-id>     

<property name="Id" column="Id" type="int" not-null="true" 
      update="false" insert="false" generated="always"/>
<property name="MinimumAmount" column="MinimumAmount" type="int" not-null="false" />
<property name="MaximumAmount" column="MaximumAmount" type="int" not-null="false" />
<property name="Leverage" column="Leverage" type="int" not-null="false" />

请帮助我,

非常感谢你, 或

0 个答案:

没有答案