DDD - 使用Fluent nHibernate在单独的表中映射值对象
编辑:
嗨,尝试编辑以回答这个问题。为了尝试改进问题,这里是一个直接到点浓缩版本:
当使用流畅的nhibernate将值对象映射到单独的表时,代码是否可行,或者有替代方法吗?
嗨,
出于这个问题的目的,我使用nhibernate流利配置。
我正在稳步学习DDD,但在对值对象的映射进行了一些澄清之后。似乎有很多关于将值对象映射为组件的信息。但是,我想在某些情况下规范化我的数据库,因此会给值对象一个持久性标识(如果我是正确的,则不违反DDD值对象规则)。
我在SO上看过这个问题,但是想了解如何设置和映射实际值对象的更多信息。
将值对象映射到表示实体的表时,我感到很自在。例如,将地址值对象作为组件映射到customer表中。
我的查询在于映射我想要放在单独的表中的值对象。是否使用类似下面的类映射来映射值对象的最佳方法?我计划忽略它纯粹存在于nhibernate持久性的Id。
public class Address
{
protected virtual int id {get;}
public virtual string firstLine {get;}
public virtual string city {get;}
public virtual string postcode {get;}
}
public class AddressMap : ClassMap<Address>
{
public AddressMap()
{
Id(x => x.Id);
Map(x=> x.firstline);
Map(x=> x.city);
Map(x=> x.postcode);
}
}
提前致谢。
没有找到相关结果
已邀请:
1 个回复
抵舵
如您所见,它们仅指定Id属性和Order的映射,并按惯例映射所有其他属性。实际上,甚至可以使用约定来映射Id。 这个非常棒的功能是您可以从您的域生成数据库架构。这使您能够使用SQLite进行集成测试。 看看它。无论如何,它对我来说非常有用。