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

时间:2017-02-03 08:29:22

标签: string mongodb bson objectid

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

public ObjectId Id { get; set; }

到此:

[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }

因为我需要使用Rebus并发送Id,但是如果没有添加自定义序列化器,ObjectId就不可序列化。实际上字符串在其他地方更方便(例如:MVC控制器中的模型绑定)。

无论如何,我认为改变没有问题,但现在我的异常试图将ObjectId反序列化为字符串:我的ApplicationUser类有一个

IEnumerable<string> Friendships { get; set; }

包含友谊实体的ID列表。它们是作为ObjectId创建的,但现在我想将它们作为字符串处理......我现在如何在代码中处理它?<​​/ p>

1 个答案:

答案 0 :(得分:1)

不将Id设置为ObjectId

将其设置为包含这些属性的字符串

Internal Server Error: /password/reset/MQ/set-password/ Traceback (most recent call last): File "C:\python\lib\site-packages\django\core\handlers\exception.py", line 41, in inner response = get_response(request) File "C:\python\lib\site-packages\django\core\handlers\base.py", line 187, in _get_response response = self.process_exception_by_middleware(e, request) File "C:\python\lib\site-packages\django\core\handlers\base.py", line 185, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "C:\python\lib\site-packages\django\views\generic\base.py", line 68, in view return self.dispatch(request, *args, **kwargs) File "C:\python\lib\site-packages\django\utils\decorators.py", line 67, in _wrapper return bound_func(*args, **kwargs) File "C:\python\lib\site-packages\django\views\decorators\debug.py", line 76, in sensitive_post_parameters_wrapper return view(request, *args, **kwargs) File "C:\python\lib\site-packages\django\utils\decorators.py", line 63, in bound_func return func.__get__(self, type(self))(*args2, **kwargs2) File "C:\python\lib\site-packages\django\utils\decorators.py", line 67, in _wrapper return bound_func(*args, **kwargs) File "C:\python\lib\site-packages\django\views\decorators\cache.py", line 57, in _wrapped_view_func response = view_func(request, *args, **kwargs) File "C:\python\lib\site-packages\django\utils\decorators.py", line 63, in bound_func return func.__get__(self, type(self))(*args2, **kwargs2) File "C:\python\lib\site-packages\django\contrib\auth\views.py", line 489, in dispatch return super(PasswordResetConfirmView, self).dispatch(*args, **kwargs) File "C:\python\lib\site-packages\django\views\generic\base.py", line 88, in dispatch return handler(request, *args, **kwargs) File "C:\python\lib\site-packages\django\views\generic\edit.py", line 183, in post return self.form_valid(form) File "C:\python\lib\site-packages\django\contrib\auth\views.py", line 522, in form_valid return super(PasswordResetConfirmView, self).form_valid(form) File "C:\python\lib\site-packages\django\views\generic\edit.py", line 79, in form_valid return HttpResponseRedirect(self.get_success_url()) File "C:\python\lib\site-packages\django\views\generic\edit.py", line 67, in get_success_url if self.success_url: File "C:\python\lib\site-packages\django\utils\functional.py", line 114, in __wrapper__ res = func(*self.__args, **self.__kw) File "C:\python\lib\site-packages\django\urls\base.py", line 91, in reverse return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))) File "C:\python\lib\site-packages\django\urls\resolvers.py", line 497, in _reverse_with_prefix raise NoReverseMatch(msg) django.urls.exceptions.NoReverseMatch: Reverse for 'password_reset_complete' not found. 'password_reset_complete' is not a valid view function or pattern name. [11/Feb/2018 14:37:16] "POST /password/reset/MQ/set-password/ HTTP/1.1" 500 134868 [BsonId(IdGenerator = typeof(StringObjectIdGenerator))]

[BsonRepresentation(BsonType.ObjectId)]