2012-04-05 14 views
0

MongoDBを使用していますが、保存しようとしていますが、返されません。なぜCollection.IMongo.Save()は返されませんか?

これは私のコントローラです:

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); 
     } 

と、この保存方法である:

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

それはラインacct.Saveを()当たったとき、それは返すことはありません。これがなぜ起こるのか?

答えて

1

問題は、私はMongoObjectとしてデータを格納するためのDateTimeを使用しようとしていたことであったが、 のMongoDBのみ次のデータ型を有する:

整数(32ビットの符号付き値) 長(64ビット符号付き値) ダブル(64ビットIEEE754のFP値) 文字列

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

1

あなたがセーフモードを使用している場合を除き、これは参照して、(まあ、ヌルを返します)返しません:「火と忘れて」方法論を使用して、すなわち、

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

を。これは、MongoDBのは、どのように動作するか、一般的です既定では書き込み/更新用です。アプリケーションをブロックしたり結果を待っていたい場合は、セーフモードまたは書き込みのメソッドがありますので、そうすることができます。

+0

それは私が値を期待していていることではないのですが、それは私がメソッドを呼び出すときに、それが無限でスタックしているように、プログラムは「フリーズ」ということですループ。 –

+0

ああ、私はちょっと間違ったことを誤解していましたが、私のC#の知識はあまり意味がありませんでしたが、使用されたメソッドやビュー(TryUpdateModelと戻り値)についての情報がなければ、問題。 –

+1

私は問題を見つけました。なぜなら、自分の.csファイルの変数にTimeSpanを使用していて、Mongoがそれを気に入らなかったからです。 –

関連する問題