C# 为什么Collection.IMongo.Save()不会返回?
我正在使用MongoDB,我正在尝试保存,但它不会返回 这是我的控制器:C# 为什么Collection.IMongo.Save()不会返回?,c#,asp.net-mvc-2,mongodb,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();
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);
}
public override void Save(){
var acct=Application.Session.GetCollection();
账户保存(本);
}
当它到达acct.Save()行时,它将永远不会返回。有什么线索可以解释为什么会发生这种情况吗?除非您使用的是安全模式,否则不会返回(嗯,返回null),请参阅:
MongoDB通常就是这样工作的,即默认情况下使用“触发并忘记”方法进行写入/更新。如果您想让应用程序阻塞或等待结果,那么安全模式或写关注点方法就在那里,您可以这样做 问题是我试图使用DateTime将数据存储为MongoObject,但 MongoDB只有以下数据类型: 整数(32位有符号值) 长(64位有符号值) 双精度(64位IEEE754 fp值) 串
这并不是说我期望一个值,而是当我调用该方法时,程序会“冻结”,就像它被卡在一个无限循环中一样。啊,好吧-我有点误解了,至少可以说,我的C#知识是基本的,但没有更多关于所用方法和视图的信息(TryUpdateModel和返回值)很难对问题的来源发表评论。毕竟我发现了问题所在,这是因为我在.cs文件中使用了TimeSpan作为我的一个变量,Mongo不喜欢这一点很酷-请随意回答您自己的问题,并提供一些细节,我会很高兴地投赞成票:)