我在ASP.NET MVC中使用Raven,如下所示:
[HttpGet]
public ActionResult Index()
{
ViewBag.Title = Strings.Workflows;
ViewBag.AddNewText = Strings.Add_new;
IEnumerable<WorkflowIndexViewModel> model;
using (var session = DocumentStore.OpenSession())
{
model = session.Query<Workflow>()
.Select(w => new WorkflowIndexViewModel { WorkflowId = w.Id, WorkflowName = w.Name })
.ToArray();
}
return View(model);
}
奇怪的是,
model
对象只有一个值(这是我所期望的,因为我知道数据库中有一个Workflow
文档),但其上的WorkflowId
和WorkfloName
属性都为null
。为什么会这样?我的投影有问题吗?我尝试将
ToArray()
的调用移到Select()
之前,那也能正常工作:[HttpGet]
public ActionResult Index()
{
ViewBag.Title = Strings.Workflows;
ViewBag.AddNewText = Strings.Add_new;
IEnumerable<WorkflowIndexViewModel> model;
using (var session = DocumentStore.OpenSession())
{
model = session.Query<Workflow>()
.ToArray()
.Select(w => new WorkflowIndexViewModel { WorkflowId = w.Id, WorkflowName = w.Name });
}
return View(model);
}