为什么Collection.IMongo.Save()不会返回?

时间:2012-04-05 19:09:43

标签: c# asp.net-mvc-2 mongodb

我正在使用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()时,它永远不会返回。有任何线索可能会发生这种情况吗?

2 个答案:

答案 0 :(得分:1)

除非您使用的是安全模式,否则不会返回(嗯,返回null),请参阅:

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

这通常是MongoDB的工作方式,即默认使用“即发即忘”方法进行写入/更新。如果您想让您的应用程序阻塞或等待结果,那么您可以使用安全模式或写入关注方法。

答案 1 :(得分:1)

问题是我试图使用DateTime将数据存储为MongoObject但是 MongoDB只有以下数据类型:

整数(32位有符号值) 长(64位有符号值) 双(64位IEEE754 fp值) 串

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