加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – RavenDB:返回属性为null值的对象

发布时间:2020-12-15 21:25:33 所属栏目:百科 来源:网络整理
导读:我在ASP.NET MVC中使用Raven如下: [HttpGet]public ActionResult Index(){ ViewBag.Title = Strings.Workflows; ViewBag.AddNewText = Strings.Add_new; IEnumerableWorkflowIndexViewModel model; using (var session = DocumentStore.OpenSession()) { mo
我在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);
}

奇怪的是模型对象有一个值(正如我所料,因为我知道我的数据库中有一个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);
}

解决方法

如果将视图模型中属性的名称更改为与Workflow类相同,则它将起作用.

model = session.Query<Workflow>()
        .Select(w => new WorkflowIndexViewModel { Id = w.Id,Name = w.Name })
        .ToArray();

但这只是一个似乎是一个错误或限制的解决方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读