Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
String Mongo C#将ObjectId反序列化为字符串_String_Mongodb_Bson_Objectid - Fatal编程技术网

String Mongo C#将ObjectId反序列化为字符串

String Mongo C#将ObjectId反序列化为字符串,string,mongodb,bson,objectid,String,Mongodb,Bson,Objectid,我改变了我所有的C#实体: public ObjectId Id { get; set; } 为此: [BsonRepresentation(BsonType.ObjectId)] public string Id { get; set; } 因为我需要使用Rebus并发送Id,但是如果不添加自定义序列化程序,ObjectId是不可序列化的。实际上字符串在其他地方更方便(例如:MVC控制器中的模型绑定) 无论如何,我原以为更改不会有问题,但现在我的应用程序在尝试将ObjectId反序列化为s

我改变了我所有的C#实体:

public ObjectId Id { get; set; }
为此:

[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
因为我需要使用Rebus并发送Id,但是如果不添加自定义序列化程序,ObjectId是不可序列化的。实际上字符串在其他地方更方便(例如:MVC控制器中的模型绑定)

无论如何,我原以为更改不会有问题,但现在我的应用程序在尝试将ObjectId反序列化为string时遇到了一个异常:我的ApplicationUser类有一个

IEnumerable<string> Friendships { get; set; }
IEnumerable友谊{get;set;}

包含来自友谊实体的ID列表。它们是作为ObjectId创建的,但现在我想将它们作为字符串处理。。。现在如何在代码中处理此问题?

未将Id设置为ObjectId

将其设置为具有这些属性的字符串

[BsonId(IdGenerator=typeof(StringObjectiveGenerator))]
[BsonRepresentation(BsonType.ObjectId)]


publicstringid{get;set;}

有一个约定,您可以尝试使用我在这个线程中发布它