我已经为我的班级添加了一个复合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" />
请帮助我,
非常感谢你, 或