Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “MongoDB投掷”;MongoDB.Bson.BsonSerializationException“;关于InsertOne_C#_Mongodb_Dictionary_Url_Serialization - Fatal编程技术网

C# “MongoDB投掷”;MongoDB.Bson.BsonSerializationException“;关于InsertOne

C# “MongoDB投掷”;MongoDB.Bson.BsonSerializationException“;关于InsertOne,c#,mongodb,dictionary,url,serialization,C#,Mongodb,Dictionary,Url,Serialization,我有以下型号: Public class UserInfo{ public string Id{get;} public Dictionary<string, string> Metadata{ get; } } 我收到以下错误消息: MongoDB.Bson.BsonSerializationException:'元素名称 “”不是 有效“.” 我可以看出问题在于字典有一个url作为键,因为当我从字典中删除这个键时,它工作得很好,当我在字典之外使用这个值时,它工作得很好

我有以下型号:

Public class UserInfo{
 public string Id{get;}
 public   Dictionary<string, string> Metadata{ get; }
}
我收到以下错误消息:

MongoDB.Bson.BsonSerializationException:'元素名称 “”不是 有效“.”

我可以看出问题在于字典有一个url作为键,因为当我从字典中删除这个键时,它工作得很好,当我在字典之外使用这个值时,它工作得很好


如何克服这个问题?

我不确定是否可以将字典直接序列化到MongoDB中,但有一个解决方法。您可以将字典转换为KeyValuePairs列表,它应该可以工作

e、 g


您是否尝试过其他字典表示法?好吧,问题不在于字典本身,而是值“”是字典中的一个键,因为当我从字典中删除这个值时,一切都变好了
Dbcontext.myCollection.InsertOne(data);
public class UserInfo
{
    [BsonId]
    public ObjectId Id { get; set; }
    public List<KeyValuePair<string, string>> Metadata { get; set; }
}
var userInfo = new UserInfo
{
    Metadata = new List<KeyValuePair<string, string>>()              
};

userInfo.Metadata.Add(new KeyValuePair<string, string>(
                          @"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name", "01"));

var userInfoCollection = mongoDatabase.GetCollection<UserInfo>("Users");
userInfoCollection.InsertOne(userInfo);
{ 
  "_id" : ObjectId("5a678a3845acb9547c1ab4f9"), 
  "Metadata" : 
    [ 
      { "k" : "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name", "v" : "01" }
    ] 
}