Ich benutze den offiziellen mongodb-Treiber für c # in meinem Testprojekt und ich habe bereits ein Dokument aus der c # -Webanwendung in mongodb eingefügt. In der Mongo-Konsole kann db.blog.find () Einträge anzeigen, die ich eingefügt habe. aber als ich versuchte, sie zu bekommen, werfen .net eine Ausnahme
"System.InvalidOperationException: ReadString kann nur aufgerufen werden, wenn CurrentBsonType String ist, nicht wenn CurrentBsonType ObjectId ist."
meine Entitätsklasse ist sehr einfach
%Vor%und das ist mein Abrufcode
%Vor%kann mir jemand helfen? Danke!
Ich nehme an, Sie müssen nur Ihre Blog-ID mit BsonId
(und selbst ID einfügen) -Attribut markieren:
Und alles sollte in Ordnung sein. Problem war, weil Sie nicht markiert haben, welches Feld Mongodb _id und vom Fahrer generierte _id Feld mit dem Typ ObjectId sein wird. Und wenn der Treiber versucht, es zurück zu deserialisieren, kann er ObjectId nicht in String konvertieren.
Vollständiges Beispiel:
%Vor%Das Abrufen der Daten aus der MongoDB mit C # ist ziemlich einfach und es gibt drei verschiedene Möglichkeiten, wie die Daten für das Frontend bereitgestellt werden können
linq
%Vor%der obige Code Zeigt an, dass die Daten mithilfe von Cursorn abgerufen werden. Empfehlung
Sehen Sie sich mein Beispielprojekt bei github an. In letzter Zeit bin ich wirklich an MongoDB interessiert. Diese Anwendung zeigt viele nützliche Dinge, die Sie auch interessieren könnten; Repository-Muster mit MongoDB.
Tags und Links c# mongodb mongodb-.net-driver