【发布时间】:2021-11-29 18:38:03
【问题描述】:
只是好奇,我来自 Mongodb 背景,但我正在切换到 CosmosDBs 核心 SQL 数据库。我似乎找不到忽略额外元素的属性(mongo 有 [BsonIgnoreExtraElements]。我粗略的谷歌搜索也没有出现太多。
有人知道这个吗?
澄清
基本上 CosmosDB 没有预定义的类设置(它基本上存储原始 json)。因此,将来如果我们向数据库上下文类添加更多元素,我们不希望我们的服务器崩溃。这是在普通 SQL 中使用传递给 EF Core 客户端的 bool 和在 mongo 上使用提到的属性建立的。
另外,我查看了JsonIgnore。但是,这意味着我必须提前知道我希望忽略哪些元素。
我正在寻找可以忽略所有未知元素的东西。这将允许灵活地将元素添加到连接到同一数据库的上下文中,而不会影响以前版本的操作(或者不必返回并使用 JsonIgnore 编辑旧版本,这可能会成为相当大的负担)
【问题讨论】:
-
定义额外的元素?你正在尝试或想要做什么。这将使非 mongo DB 程序员更容易帮助您
-
基本上 CosmosDB 没有预定义的类设置(它基本上存储原始 json)。因此,将来如果我们向数据库上下文类添加更多元素,我们不希望我们的服务器崩溃。这是在普通 SQL 中使用传递给 EF Core 客户端的 bool 和在 mongo 上使用提到的属性建立的。
-
能否提供样例输入输出?
-
所以,假设您有一个 json 字符串,您的 asp 服务器从文档数据库接收到该字符串。然后它将尝试将 json 解析为您预先设置的类。当您必须维护以前版本的类时会出现问题(为了与旧版本的前端兼容)这设置了一个限制,即我们不能更改或删除已经建立的元素,除非发布早期版本的修补程序。但是,从历史上看,我们能够向给定的类添加元素,因为我们的应用程序的早期版本被设置为忽略额外的元素。
标签: c# asp.net azure-cosmosdb