我在 C# 中使用 mongoDB 做了一些工作,但我的所有代码仍在开发中。我想知道随着时间的推移,随着新属性的创建、更改和删除,人们发现了哪些有用的模式来发展他们的域类。我很清楚,我需要对所有存储的数据运行更新,或者确保我的域类知道如何处理旧格式记录,但随着时间的推移,我可以想象如果一个类知道如何处理,这会变得混乱所有可能的表单格式。
我是不是想太多了?这主要是使用良好的防御性编程的一个例子吗?
我在 C# 中使用 mongoDB 做了一些工作,但我的所有代码仍在开发中。我想知道随着时间的推移,随着新属性的创建、更改和删除,人们发现了哪些有用的模式来发展他们的域类。我很清楚,我需要对所有存储的数据运行更新,或者确保我的域类知道如何处理旧格式记录,但随着时间的推移,我可以想象如果一个类知道如何处理,这会变得混乱所有可能的表单格式。
我是不是想太多了?这主要是使用良好的防御性编程的一个例子吗?
因此,在许多情况下,您甚至不需要对数据运行更新(除非您更改数据类型或您的属性影响索引)。另一点是添加 BsonIgnoreExtraElementsAttribute 通常是一个好习惯,特别是如果您担心经常添加和/或删除属性。按照这种做法,您可以提供旧版本和新版本的应用程序来处理所有版本的记录,享受“无模式”的好处。