Cassandra:将UDT的map< text,text>datatypeMap到.Net中的SortedDictionary

e4eetjau  于 2022-09-27  发布在  Cassandra
关注(0)|答案(1)|浏览(175)

我正在使用cassandra DB for.Net。我在用户定义的数据类型中创建了一个数据类型dictionary_type_property map<text,text>,但在使用udtMap将此数据类型值转换为.Net字典类型时遇到了问题。

.Map(s => s.MyDictionaryTypeProperty, "dictionary_type_property");

字典类型属性为:

public SortedDictionary<string, string> MyDictionaryTypeProperty { get; set; }

这里我得到了以下异常:“类型System.Collections.Generic.IDictionary1d1d1e2[System.String,System.String]中没有可用的转换器”
感谢你的帮助。

pgpifvop

pgpifvop1#

正如错误所说,您正在尝试将IDictionary变量转换为SortedDictionary。然而,IDictionary不是继承自SortedDictionary,而是反过来。如果你从未听说过,我建议你读一读关于继承的书。
我可以建议你改变

public SortedDictionary<string, string> MyDictionaryTypeProperty { get; set; }

public IDictionary<string, string> MyDictionaryTypeProperty { get; set; }

因此,通过这种方式,该方法将尝试将IDictionary值“拟合”到具有相同类型的变量中。

.Map(s => s.MyDictionaryTypeProperty, "dictionary_type_property");

如果以后要尝试将此变量用作SortedDictionary,可以尝试使用转换(SortedDictionary) MyDictionaryTypeProperty

SortedDictionary<string, string> sortedDictionary = new SortedDictionary<string, string>(MyDictionaryTypeProperty);

相关问题