MDriven:持久化的瞬态实例 class
MDriven: Transient instance of persistent class
在 MDriven 中,我有一个持久性 class,我需要为其创建一个瞬态实例。
这可能吗?
我知道解决方法是像往常一样创建然后丢弃它。
澄清 2018-02-02 17:04 UTC+1:
我需要在不向模型、编译时间添加任何内容的情况下执行此操作。
是的,您是对的 - 无法将 class 更改为在运行时变为瞬态。
但是你可以 subclass 它...并使 subclass 短暂...我自己就有那个确切的需要并以这种方式解决了它。
示例:MonthDemandSupplyCorrection 是持久的 - 但 MDSC_Placeholder 不是
Update:既然需求被明确为"not known in design time" - 更好的答案是创建一个普通实例并避免保存它。这可以通过这样的撤消服务和内存事务来确保:
EcoSpace.Undo.StartTransaction();
try
{
//Any changes you need
}
finally
{
EcoSpace.Undo.RollbackTransaction();
}
您可以尝试 umlrt - 在运行时使用模型、类 等。例如 - https://www.capableobjects.com/2016/07/21/calling-your-own-c-net-things-from-turnkeyserver-side/
Migth 帮助 - 旧的免费电子书 - ECO III 书
作者:阿洛伊斯·施密德
在 MDriven 中,我有一个持久性 class,我需要为其创建一个瞬态实例。
这可能吗?
我知道解决方法是像往常一样创建然后丢弃它。
澄清 2018-02-02 17:04 UTC+1:
我需要在不向模型、编译时间添加任何内容的情况下执行此操作。
是的,您是对的 - 无法将 class 更改为在运行时变为瞬态。
但是你可以 subclass 它...并使 subclass 短暂...我自己就有那个确切的需要并以这种方式解决了它。
示例:MonthDemandSupplyCorrection 是持久的 - 但 MDSC_Placeholder 不是
Update:既然需求被明确为"not known in design time" - 更好的答案是创建一个普通实例并避免保存它。这可以通过这样的撤消服务和内存事务来确保:
EcoSpace.Undo.StartTransaction();
try
{
//Any changes you need
}
finally
{
EcoSpace.Undo.RollbackTransaction();
}
您可以尝试 umlrt - 在运行时使用模型、类 等。例如 - https://www.capableobjects.com/2016/07/21/calling-your-own-c-net-things-from-turnkeyserver-side/
Migth 帮助 - 旧的免费电子书 - ECO III 书 作者:阿洛伊斯·施密德