2010-04-28 29 views
0

this article Ayende描述如何映射单个域模型到多个物理数据模型之间的单个域模型。是否有可能扩展这个原则,使映射可以动态选择?NHibernate的:动态交换多个物理数据模型

因此,举例来说,假设我们有可能通过三种方式取决于其当前状态被写入到同一物理架构中的实体,让我们假设,无论状态,为每个实体有一个唯一的标识符。

一个解决办法是表示实体在其不同的状态与三个独立的类:一个为每个映射。然后,该实体可以加载并以改变其状态的实体可以被映射到表示它的其他状态中的一个类,然后保存回模式,利用不同的映射的。

我想知道是否完全有可能拥有一个持有状态标志(类似鉴别符)的类所代表的实体,并且任何向模式的保存都会根据该值选择适当的映射的状态标志。

希望这是有道理的!

非常感谢。

回答

-2

即使这是可能的,恕我直言,这不是一个好主意。它基本上是在this question问同样的事情,和我一起贴有答案一致。基本上,保持简单,并在单个映射类中对您的状态进行建模。

+0

感谢您的答复。在我看来,如果有可能,那么它会更干净。只是为了澄清:我没有改变实体的类型(这是我需要做的,如果它是不可能的),我改变它是如何坚持。这是对象模型不应该关心的事情,需要有多个类来表示同一个实体会污染对象模型。 – Nigel 2010-04-29 15:49:15

+0

我支持我的回答。你用不同的类表示同一事物的不同状态。 IMO *表示根据内部状态有效地改变实体类型。我不建议,特别是因为你有一个简单的解决方案,其只是表示与正常性能,甚至与一些''关系状态。 – 2010-05-11 12:08:22

+0

Downvoters:关心表达你的意见/备选方案/解决方案? – 2010-05-11 12:08:48