我一直在尝试寻找解决我目前使用Fluent NHibernate映射我的DDD模型的问题的解决方案。如果有人能够把我放在正确的方向,那将是值得赞赏的。
基本上我有这个课我想要映射:
public class A : EntityObject
{
//assuming some other attributes have been mapped properly
public virtual Location MyLocation { get; private set; }
}
public class Location : EntityObject
{
public virtual string Name { get; private set; }
}
public Class AMap : ClassMap<A>
{
//???? How to map the Location
}
从数据库pov,表“A”与表“位置”没有直接关系。表“A”必须在访问LocationId列之前使用连接通过表“B”和表“C”,然后我可以映射到Location表。
在Fluent NHibernate中映射Location对象的最佳方法是什么?如果有任何不清楚的地方,请告诉我。
任何帮助都会受到赞赏吗?
提前致谢。
答案 0 :(得分:0)
没有关于你的域的那么多信息我觉得像UpTheCreek - 你可以将Location建模为扩展A类的ValueObject。
我看到两个选项。 1,A类通过LocationRepository与Location有间接关系,你可以在这里GetLocationByA(A a)
2,您将Location定义为Valueobject,它是A类聚合的一部分,并通过A的存储库加载。根据您的域模型以及位置和A之间的关系,位置即时加载或在A的构造函数中加载。抱歉下面的格式...
public class AMap : ClassMap<A>
{
public AMap()
{
Component(x => x.MyLocation, m =>
{
m.Map(x => x.Name, "Name");
});
}
}