Abrufen von Daten von mongodb mit dem C # -Treiber

9

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!

    
Ken Qiu 21.07.2011, 06:45
quelle

4 Antworten

10

Ich nehme an, Sie müssen nur Ihre Blog-ID mit BsonId (und selbst ID einfügen) -Attribut markieren:

%Vor%

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%     
Andrew Orsich 21.07.2011, 07:21
quelle
2

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

  1. Liste
  2. Cursor
  3. linq

    %Vor%

der obige Code Zeigt an, dass die Daten mithilfe von Cursorn abgerufen werden. Empfehlung

    
sujith 16.07.2015 15:05
quelle
1

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.

    
Amit Kr 10.02.2014 20:05
quelle
0

Der Typ und der Name des ID-Members sollten wie folgt aussehen

%Vor%

Dabei steht ObjectId im Namespace MongoDB.Bson

    
Yossi Lev 15.06.2014 07:35
quelle

Tags und Links