以下一系列事件似乎突然出现在我面前:
我能想到的选项:
答案 0 :(得分:0)
一旦序列化并共享/存储了这些数据,您基本上就会签订合同。因此,如果您预见到对模型进行版本控制的任何问题,我会为序列化目的创建一个单独的 DTO模型。然后,即使数据库模型发生更改,您也可以将数据重新加载到DTO中。显然,您需要将DB模型映射到DB模型/从DB模型映射,但这通常非常简单。
简而言之,我认为问题在于模型的双重用途:
DB <===> Model <==> storage
如果以下效果更好:
DB <===> DB Model <==*==> DTO Model <===> storage
现在,您可以通过调整标记为*
您可以 处理此方案中的存储更改,甚至支持多个DTO模型(用于不同目的,或不同/不兼容的修订)。
每当序列化变得棘手时,最简单的解决方法通常是:引入DTO