gpt4 book ai didi

c# - Fluent Nhibernate - 将两个实体映射到同一个表

转载 作者:太空宇宙 更新时间:2023-11-03 17:59:55 25 4
gpt4 key购买 nike

我正在尝试将两个域实体映射到同一个表。我们正在为我们的域模型做一个智能实体,所以我们有一个可编辑地址和一个只读地址的概念。我都使用 Classmaps 进行了映射,在我们尝试使用 NHibernate 的 SchemaExport 类导出架构之前,一切似乎都很好。它错误地说该表已经存在。

我认为这很简单,我只是没有看到。

有任何想法吗?

谢谢

更新

还有一些我没有提到我应该拥有的东西。我很欣赏那些到目前为止回答的人,但它们对我们不起作用。

一个是我们有一个单一的地址表,不包括任何具有地址的实体中的列。

另一个是我们不能使用通用的基类。对于可编辑对象,我们有一个父类(super class),它向子类添加验证行为。只读对象不需要这种行为,也不应该有这些行为。

我考虑过一个接口(interface),但后来我相信我最终会遇到这样一种情况,您可以将一个只读对象强制转换为该接口(interface),然后更改其值(因为 NHibernate 可能会使用所述接口(interface)来水合该对象)。

因此,如果有另一种方法可以实现这一点,或者如果通过接口(interface)映射不会出现我描述的问题,请告诉我。我还在学习NHibernate。

再次感谢!

最佳答案

您可以从 schemaexport 中排除只读类:

public class ReadonlyAdressMap : ClassMap<ReadonlyAdress>
{
ReadonlyAdressMap()
{
Schemaaction.None();
[...]
}
}

关于c# - Fluent Nhibernate - 将两个实体映射到同一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3048876/

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