在LINQ查询中序列化为JSON

时间:2015-07-17 13:56:31

标签: c# json asp.net-mvc serialization linq-to-entities

嘿我在ASP.NET MVC中尝试使用Ajax接收数据,但这段代码似乎没有用。

return this.Json(new
        {
            Result = (from obj in temp
                      select new
                      {
                          ObjektoAdresas = obj.ObjektoAdresas,
                          ĮrenginioNumeris = obj.ĮrenginioNumeris,
                          T1 = serializer.Serialize(obj.T1),
                          T2 = serializer.Serialize(obj.T2),
                          ŠiluminėEnergija = serializer.Serialize(obj.ŠiluminėEnergija),
                          ŠiluminėGalia = serializer.Serialize(obj.ŠiluminėGalia)
                      })
        }, JsonRequestBehavior.AllowGet);

这将抛出带有附加信息的NotSupportedException:LINQ to Entities中仅支持无参数构造函数和初始值设定项。

据我所知,我不能使用serializer.Serialize(something),因为它需要一个参数。那是对的吗?如果是这样,如何在发送之前将此数据序列化为JSON?

编辑:我在Will的响应后更改了代码,但它仍然会抛出相同的异常。

var temp = (from obj
                    in models
                    select obj).ToArray();

        return this.Json(new
        {
            Result = (from obj in temp
                      select new
                      {
                          ObjektoAdresas = obj.ObjektoAdresas,
                          ĮrenginioNumeris = obj.ĮrenginioNumeris,
                          T1 = serializer.Serialize(obj.T1),
                          T2 = serializer.Serialize(obj.T2),
                          //Srautas = serializer.Serialize(obj.Srautas),
                          //VandensKiekis = serializer.Serialize(obj.VandensKiekis),
                          ŠiluminėEnergija = serializer.Serialize(obj.ŠiluminėEnergija),
                          ŠiluminėGalia = serializer.Serialize(obj.ŠiluminėGalia)
                      })
        }, JsonRequestBehavior.AllowGet);

0 个答案:

没有答案