<地图>= 字典地图>
我有 3 个实体: 类用户 {id,name...} 类 UserUrl {id,user_id,url,url_type_id} 类 UrlType {id,name} 我的映射:<类名=“用户”表=“用户”lazy=“false”>
<属性名称=“user_id”column=“user_id”类型=“Int32”/>
<多对一 name="UrlType" column="url_type_id" class="UrlType"/>
>
所以 User.Urls 是 IDictionary
。 但我想获取 Dictionary
,其中字符串键是 UrlType.name。 有人知道怎么做这个吗?
I have 3 entities:
class User {id,name...}
class UserUrl {id,user_id,url,url_type_id}
class UrlType {id,name}
My mapping:
<class name="User" table="Users" lazy="false">
<id name="id" type="Int32" column="id">
<generator class="identity" />
</id>
<property name="name" column="name" type="String"/>
<map name="Urls" table="UserUrl">
<key column="user_id"></key>
<index-many-to-many class="UrlType" column="url_type_id"/>
<one-to-many class="UserUrl"/>
</map>
</class>
<class name="UserUrl" table="UserUrl">
<id name="id" type="Int32" column="id">
<generator class="identity"/>
</id>
<property name="user_id" column="user_id" type="Int32"/>
<many-to-one name="UrlType" column="url_type_id" class="UrlType"/>
<property name="Url" column="url" type="String" not-null="true"/>
</class>
>
So User.Urls is IDictionary<UrlType,UserUrl>
. But I want to get Dictionary<string,UserUrl>
, where string key is UrlType.name.
Does anybody know how to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我找到了目的地。
映射:
代码:
使用:
但是花费更多时间从数据库获取Urls类型的id
I find out desition.
Mapping:
Code:
Use:
But It is spend more time to get ids of Urls types from DB
NHibernate 将为您提供一个集合接口,在本例中为 IDictionary,因为它的实现将涉及代理和缓存,您不会想知道细节。
所以你不会得到一本字典。
我的问题是为什么你想要一个字典,你通过 IDictionary 接口访问所有数据,一个具体的类会提供什么额外的功能?
NHibernate will give you an interface for collections, in this case IDictionary as its implementation will involve proxies and caching and you won't want to know the details.
So you won't get a Dictionary.
My question would be why do you want a Dictionary, you access all the data via the IDictionary interface what extra functionality would a concrete class give?