首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FluentNhibernate地图IDictionary<Entity1,Entity2>

FluentNhibernate地图IDictionary<Entity1,Entity2>
EN

Stack Overflow用户
提问于 2013-10-27 12:50:26
回答 1查看 86关注 0票数 0

我一直在四处寻找正确的地图,但没有成功。

我开始找到放弃MYdOTD1Jk的人

那么-你如何映射

代码语言:javascript
复制
IDictionary<Entity1,Entity2> ?

我本想贴出我试过的东西,但现在我正在进行第15次尝试。

代码语言:javascript
复制
public class Entity1Map : ClassMap<Entity1>
{
    public Entity1Map()
    {
         Id(x=> x.ID);
    }
}

public class Entity2Map : ClassMap<Entity2>
{
    public Entity2Map()
    {
         Id(x=> x.ID);
    }
}


public class Entity3 { public IDictionary<Entity1,Entity2> Dict { get;set; } }
public class Entity3Map : ClassMap<Entity3>
{
    public Entity3Map()
    {
         Id(x=> x.ID);

         //DictMap??
    }
}

非常感谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-29 10:44:23

使用EntityMap。以下是我的工作

代码语言:javascript
复制
public class Entity3Map : ClassMap<Entity3>
{
    public Entity3Map()
    {
        Id(x => x.Id);

        HasManyToMany(x => x.Dict)
            .Table("linkTable")
            .Cascade.All()
            .AsEntityMap();
    }
}


var e1 = new Entity1();
var e2 = new Entity2();
using (var tx = session.BeginTransaction())
{
    session.Save(e1);
    session.Save(new Entity3 { Dict = { { e1, e2 } } });
    tx.Commit();
}
session.Clear();

var entity3 = session.Query<Entity3>().FetchMany(x => x.Dict).ToList().First();

Assert.Equal(1, entity3.Dict.Count);
Assert.Equal(e1.Id, entity3.Dict.First().Key.Id);
Assert.Equal(e2.Id, entity3.Dict.First().Value.Id);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19618223

复制
相关文章

相似问题

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