当前位置:  开发笔记 > 数据库 > 正文

nHibernate 2.0 - 映射复合id*和*多对一关系会导致"无效索引"错误

如何解决《nHibernate2.0-映射复合id*和*多对一关系会导致"无效索引"错误》经验,为你挑选了1个好方法。

我有个问题.想象一下这个数据模型:

[Person] table has: PersonId, Name1  
[Tag] table has:  TagId, TagDescription  
[PersonTag] has: PersonId, TagId, IsActive

由于[PersonTag]不仅仅是一个简单的多对多连接表,我在nHibernate中创建了所有三个实体(就像它们在数据模型中一样).PersonTag因此,需要一个复合ID,我已经映射到这样的类:


  
  
 

我想遍历对象图,并能够从检索到的对象中查看Person和对象.所以,我在对象上有属性来做,像这样映射:TagPersonTagPersonTag



当我尝试创建一个PersonTag对象并保存它时,我得到一个"此SqlParameterCollection的无效索引n,其中Count = n"错误.我知道这是因为我已经映射PersonIdTagId性能两次,一次为复合-ID,并曾经为许多一对一的关系.如果我不映射多对一对象,那么一切正常.

有没有办法让我能够在同一个nHibernate实体中建模的同一列中拥有复合ID和多对一关系?



1> joshua.ewer..:

凯,这是答案.几乎没有关于此的文档:

 
  
  

这将允许您创建由多对一关系的倒数组成的复合ID.

好狩猎......

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有