首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >nHibernate映射通用IDictionary

nHibernate映射通用IDictionary
EN

Stack Overflow用户
提问于 2009-10-27 16:38:08
回答 1查看 213关注 0票数 0

我在别处问过这个问题,但没有得到任何明智的答复

我正在尝试映射一个IDictionary。我有这个映射:

代码语言:javascript
运行
复制
<class name="MyProject.Item, MyProject" table="Item"> 
<...>
<map name="Properties" access="property" table="ItemProperties" lazy="false"> 
  <key column="ItemID" /> 
  <index column="Idx" type="int" /> 
 <element column="Value" type="System.Boolean, mscorlib"/> 
</map> 

我可以持久化数据,但在检索数据时会出现键异常:{“值"0”不是"Project.PropertyType“类型,不能在此泛型集合中使用。参数名称: nHibernate”}

所以它不能映射到枚举,但是为什么呢?如果我有一个使用枚举的常规属性,它工作得很好。

我想要做的事情有可能实现吗?我找不到太多关于这样做的信息。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-10-28 09:31:19

您的映射将键显示为整数,而不是枚举。要正确映射枚举,请使用type="MyProject.Project.PropertyType, MyProject"

但是,通常对于枚举来说,最好的方法是将类型信息完全排除在映射文件之外,让NHib通过反射来获取它。我对NHib源代码的理解意味着,如果你要映射到一个通用的IDictionary<K,V>中,那么NHib应该通过反射来获取你的键的确切类型。现在你仍然可以省略type属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1629445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档