0

MongoDB を使用していますが、保存しようとしていますが、返されませんか??

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

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

これが Save メソッドです。

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

acct.Save() の行に到達すると、戻りません。なぜこれが起こるのか手がかりはありますか?

4

2 に答える 2

1

セーフ モードを使用していない限り、これは返されません (まあ、null が返されます)。以下を参照してください。

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

これは一般的に MongoDB の動作方法です。つまり、デフォルトで書き込み/更新に「ファイア アンド フォーゲット」方式を使用します。アプリケーションをブロックしたり、結果を待つ必要がある場合は、セーフ モードまたは書き込み懸念メソッドが用意されているので、それを行うことができます。

于 2012-04-06T09:59:36.890 に答える
1

問題は、DateTime を使用してデータを MongoObject として保存しようとしていたが、MongoDB には次のデータ型しかないことでした。

Integer (32 ビット符号付き値) Long (64 ビット符号付き値) Double (64 ビット IEEE754 fp 値) 文字列

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

于 2012-06-14T16:20:31.033 に答える