C# 如何使用C将字典保存到数据库中?
我一直在使用以下方法将词典保存到数据库中: 将字典转换为XML。 将此XML传递给SPStored过程。 在SP使用中:C# 如何使用C将字典保存到数据库中?,c#,.net,relational-database,C#,.net,Relational Database,我一直在使用以下方法将词典保存到数据库中: 将字典转换为XML。 将此XML传递给SPStored过程。 在SP使用中: Select Key1, Value1 into #TempTable FROM OPENXML(@handle, '//ValueSet/Values', 1) WITH (
Select
Key1,
Value1
into #TempTable
FROM OPENXML(@handle, '//ValueSet/Values', 1)
WITH
(
key1 VARCHAR(MAX),
value1 varchar(100)
)
完成了
有没有一种方法可以将字典保存到数据库而不将其转换为XML?序列化字典并存储二进制数据
然后将数据反序列化回字典
使用foreach语句在字典中循环。这取决于。。。 您希望存储数据:实现和性能方面最快的方法是通过二进制序列化。但是,使用select无法读取数据,需要读取数据的每个应用程序都必须使用相同的序列化(如果数据以相同的技术/语言存在)。在我看来,它打破了存储在SQL数据库中的目的 您希望数据能够被人类读取:XML是一种选项,虽然速度不太快,读取起来有点困难,但仍然无法查询。然而,它的实现速度相当快。您还可以将结果转储到一个文件中,该文件仍然可读。此外,您可以与其他应用程序共享数据,因为XML是一种广泛使用的格式 您希望数据可以查询。根据您的方式,实现起来可能不那么容易。您需要两个表,一个用于键,一个用于值。然后,您可以编写自己的自定义映射代码来将列映射到属性,也可以使用框架将对象映射到表,如或
虽然Entity或NHibernate对于一个小问题来说似乎有点大,但在其中建立一些专业知识总是很有趣的,因为内部概念是可重用的,一旦你有了工作设置,它可以真正加快开发速度。只需将键和值保存到数据库表中相应的列中即可。字典中有什么?Key-string和Value-string创建一个包含Key和Value列的表怎么样?@NedStoyanov如果我循环字典并在Sp中为每个Key-Value对传递参数是否有效?您可以将所有键和值的列表传递给Sp,看到了吗?我不这么认为。