将JSON记录插入SQL Server数据库

时间:2013-11-12 01:12:52

标签: c# sql-server json

我有一个打开的SqlConnection(由Dapper扩展),连接数据库中的表名,以及一个我信任属于同一模式的JSON字符串。在不反序列化为静态类型的情况下,插入JSON对象的字段值的最简单方法是什么?

我意识到标准选项是创建一个表示要反序列化的记录的类。但是,有几个原因不太理想。我以完全相同的方式同步了许多表。模式已经存在于两个地方(源和目标),因此在中间件中重复模式似乎很糟糕。此外,由于我只是直接进入数据库,所以当有人添加额外的列或表时,需要重新编译似乎过多。

是否有更动态的解决方案?

2 个答案:

答案 0 :(得分:2)

可能反序列化为动态是最好的选择。如果你想直接从字符串中提取值,你将不得不(至少部分地)解析它,那时你也可以反序列化它

有关使用JSON.net的示例,请参阅此答案:Deserialize json object into dynamic object using Json.net

答案 1 :(得分:0)

反序列化为字典,然后构建Dapper DynamicParameters。

How to create arguments for a Dapper query dynamically