gpt4 book ai didi

.net - 用于映射 IDictionary 的流畅代码?

转载 作者:行者123 更新时间:2023-12-04 20:03:04 25 4
gpt4 key购买 nike

我想弄清楚如何在 fluent 1.0 RTM 中映射 IDictionary 属性。

根据我的理解,这转化为三元关联。

例子:

class Bar
{
public IDictionary<SomeEntity, int> Foo {get; set;}
}

Bar.hbm.xml 将包含:
<map name="Foo" table="BarFooTable">
<key column="..."/>
<index-many-to-many class="SomeEntity" column="SomeEntity_Id"/>
<element column="Value" type="int"/>
</map>

我必须用流畅的 nhibernate 编写什么来生成这个映射 xml?

这里的兴趣点是键是实体类型,而值是值类型。 (编辑:至少,这似乎与在 stackoverflow 或 google 组上 float 的各种其他示例和问题(值-值或键-键)不同)

经过大量实验,我可以为 IDictionary<SomeEntity,SomeEntity> 生成映射。 (纯实体类型):
HasManyToMany(x => x.Foo)
.AsMap("Key")
.AsTernaryAssociation("Key2", "Value")
;

我还可以为 IDictionary<int,int> 生成映射(纯值类型):
HasMany(x => x.Foo)
.AsMap<int>("Key")
.Element("Value")
;

我什至可以通过某种方式为 IDictionary<int, SomeValue) 生成映射。 ,尽管 NHibernate 不会接受。

但我不知道如何为 IDictionary<SomeValue, int> 生成映射。这就是我想要的。有人可以提供一些提示吗?

最佳答案

HasMany(x => x.Foo)
.KeyColumn("BarId")
.Element("IntValue")
.AsMap<SomeEntity>("SomeEntityId")
.AsTernaryAssociation("SomeEntityId");

关于.net - 用于映射 IDictionary<SomeEntity, int> 的流畅代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1360976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com