我一直在寻找正确的映射,但没有成功。
我开始找到放弃https://groups.google.com/forum/#!topic/fluent-nhibernate/u_MYdOTD1Jk
的人那么 - 你如何映射
IDictionary<Entity1,Entity2> ?
我会发布我尝试过的内容,但我现在正在尝试第15次尝试..
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??
}
}
非常感谢:)
答案 0 :(得分:0)
使用EntityMap。以下是为我工作
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);