【发布时间】:2016-02-09 01:26:25
【问题描述】:
我在我的 mvc4 项目中使用 RavenDB,将类对象存储到 RavenDB 时它工作正常,但在执行选择操作时会引发错误:
对象引用未设置为对象的实例
所有查询
RavenbaseController.cs
public class RavenBaseController : Controller
{
public IDocumentSession RavenSession { get; protected set; }
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
RavenSession = MvcApplication.Store.OpenSession("ravendbtesting");
}
protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
if (filterContext.IsChildAction)
return;
using (RavenSession)
{
if (filterContext.Exception != null)
return;
if (RavenSession != null)
RavenSession.SaveChanges();
}
}
}
Activation.cs
public class Activation : RavenBaseController
{
public string tokenid { get; set; }
public bool validate(string tid)
{
var query = from u in RavenSession.Query<Register>() where u.TokenId == tid select u;
foreach (var v in query)
{
v.IsApproved = true;
}
RavenSession.SaveChanges();
return true;
}
}
查询已尝试:
var results = from u in RavenSession.Query<Register>()
where u.TokenId == tid
select u;
var query= RavenSession.Query<Register>()
.Where(x => x.TokenId == tid)
.ToList();
我不明白为什么它不起作用我是 RavenDB 的新手
更新
如果从控制器运行,所有查询都可以正常工作,但如果从类文件运行,则会出现错误“对象引用未设置为对象的实例”
【问题讨论】:
-
你说的“从类文件运行”是什么意思?
RavenSession是否正确实例化? -
RAVENSESSION已正确实例化,但如果我从模型文件夹中的类运行查询,那么我没有工作,但如果从Controller运行,那么它工作正常