2012-04-05 16 views
0

Ich benutze MongoDB und ich versuche zu speichern und es kommt einfach nicht zurück ??Warum würde Collection.IMongo.Save() nicht zurückgeben?

das ist mein Controller:

public ActionResult doSomething(FormCollection collection) 
     { 
      if (collection == null || collection.Count == 0) 
       return View(Tenant); 

      var acct = new Account(); 

      var whitelist = new String[]{"Name"}; 
      TryUpdateModel(acct, whitelist, collection.ToValueProvider()); 

      Tenant.Name = acct.Name; 

      Tenant.Save();    


      return View(Tenant); 
     } 

und das ist die Methode Save:

public override void Save(){ 
    var acct = Application.Session.GetCollection<Account>(); 
    acct.Save(this); 
} 

wenn er trifft die Linie acct.Save(), gibt sie nie. Irgendeine Ahnung, warum das passieren könnte?

Antwort

1

Das Problem war, dass ich versuche, Datetime zu verwenden, um Daten zu speichern als MongoObject aber MongoDB nur hat die folgenden Datentypen:

Integer (32-Bit-Wert mit Vorzeichen) Long (64-Bit-Wert mit Vorzeichen) Doppel (64-Bit IEEE754 fp Wert) String

http://code.google.com/p/morphia/wiki/PropertyAnnotation

1

Sofern Sie den abgesicherten Modus verwenden, diese nicht zurück (na ja, gibt einen null) finden Sie unter:

http://api.mongodb.org/csharp/1.4/html/2cdf9e5b-d850-994f-c6ba-54ded02c7589.htm

Diese Regel ist, wie MongoDB arbeitet, dh ein "fire and forget" mit Methode Standardmäßig für Schreibvorgänge/Aktualisierungen. Wenn Sie möchten, dass Ihre Anwendung blockiert oder auf ein Ergebnis wartet, dann sind die Methoden für den abgesicherten Modus oder das Schreiben von Bedenken verfügbar, damit Sie dies tun können.

+0

es ist nicht, dass ich einen Wert erwarte, ist es, dass, wenn ich die Methode aufrufen, das Programm „friert“, wie es in einer unendlichen stecken Schleife. –

+0

Ah, OK - ich habe das etwas missverstanden, mein C# - Wissen ist gelinde gesagt rudimentär, aber ohne mehr Informationen über die verwendeten Methoden und View (TryUpdateModel und den zurückgegebenen Wert) wäre es schwierig, die Quelle des Problem. –

+1

Ich finde das Problem schließlich und es war, weil ich TimeSpan für eine meiner Variablen in meiner CS-Datei verwendete und Mongo das nicht mochte –

Verwandte Themen