首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么Linq to Entity Select方法翻转投影列表属性?

为什么Linq to Entity Select方法翻转投影列表属性?
EN

Stack Overflow用户
提问于 2013-02-26 05:00:10
回答 2查看 1.2K关注 0票数 16

我对linq to entity / Json / MVC.net 4有最奇怪的行为

我有这段代码,出于某种奇怪的原因,每个其他列表的属性顺序是颠倒的。

代码语言:javascript
复制
var output = db.FooBar.Where(a => a.lookupFoo == bar)
                      .Select(a => new List<double>{
                                     //value's are the same per row 
                                     //for demonstration sake.
                          a.fooBarA,  //Always 12.34
                          a.fooBarB,  //Always 12.34
                          a.fooBarC,  //Always 0
                          a.fooBarD  //Always 0 //lazy casting to double from int
                      });
return Json(new {output});

输出如下所示:

代码语言:javascript
复制
{
  "output": [
    [12.34, 12.34, 0,     0], 
    [0,     0,     12.34, 12.34], 
    [12.34, 12.34, 0,     0],
    [0,     0,     12.34, 12.34]
  ]
};

我已经设法解决了这个问题,在Where和Select之间放置了一个toList(),但我仍然想知道为什么会发生这种行为。

更多信息:EF4.4 (tt生成的上下文),SQL Server2008r2Express .NET 4.0,MVC3.0,Vanilla System.Web.Mvc.JsonResult,表由一个整型主键组成,浮点型的值不包括最后一个整型

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-03 23:53:44

试一试

代码语言:javascript
复制
var output = db.FooBar.Where(a => a.lookupFoo == bar)
                  .Select(a => new List<double>{
                                 //value's are the same per row 
                                 //for demonstration sake.
                      a.fooBarA,  //Always 12.34
                      a.fooBarB,  //Always 12.34
                      a.fooBarC,  //Always 0
                      a.fooBarD  //Always 0 //lazy casting to double from int
                  }).toList();
return Json(output);

在你的输出方式中,只需要上下文,为获取数据生成的脚本可能会在很多时候执行大小为Json()

票数 1
EN

Stack Overflow用户

发布于 2013-05-27 07:17:09

添加一个.ToArray,看看会得到什么。请记住,linq (选择..exc)仅在调用IEnumerator时执行。

我认为如果你添加ToArray,每次的结果都是一样的,而且是一致的。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15076402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档