2013-03-10 43 views
0

我花了最近几天试图读取和测试各种方法在实体框架内的实体中获取属性(列)并从中检索平均值,然后传递给JSON。我已经接近几次但总是失败。最后,当我有JSON时,我想以缩进的格式将其返回,以便在JQuery可视化库中使用。从实体框架缩进JSON

我的控制器是在这里:

public virtual JsonResult GetData() 
    { 
     var result = new FactSurveryResultsQueries().GetAverages(); 
     return new JsonResult { JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = result }; 
    } 

这里是我的视图模型:

namespace Provider.Models 
{ 
    public class FactSurveyResultsViewModel //: BaseGraphViewModel 
    { 
     public FactSurveyResultsViewModel() { } 
     //public List<KPIUserControl> customerSatisfactionChart = new List<KPIUserControl>(); 
     ////public List<string> customerSatisfactionChart = new List<string>(); 
     //public Dictionary<string, decimal> a { get; set; } 
     public double? EaseRequestingHelp { get; set; } 
     public double? TimeReachQualifiedTech { get; set; } 
     public double? TimeProvideSolution { get; set; } 
     public double? CompletenessOfSolution { get; set; } 
     public double? TechAbilityProdKnowledge { get; set; } 
     public double? HowWellKeptInformed { get; set; } 
     public double? OverallServiceOpinion { get; set; } 

    } 
} 

最后,这是我当前迭代只获得一个属性,并进行平均的,尽管这是目前空。

namespace Provider.Queries 
{ 
    public class FactSurveryResultsQueries 
    { 
     public FactSurveyResultsViewModel GetAverages() 
     { 
      var result = new FactSurveyResultsViewModel(); 
      using (var db = new ATSNavigatorDBEntities()) 
      { 
       var thing = 
        from p in db.Fact_SurveyResults 
        group p by 1 into a 
        select new FactSurveyResultsViewModel { EaseRequestingHelp = a.Average(p.EaseRequestingHelp)}; 
      } 
      return result; 
     } 
    } 
} 

任何人都可以点我朝着检索一个属性,并让它从我的控制器缩进JSON,所以我可以使用它访问,然后我可以复制这个其他属性?谢谢。

回答

1

您可以使用Json.NET将.NET对象序列化为JSON。它有一个生成缩进JSON的格式化选项。

您可以通过Visual Studio中的NuGet安装Json.NET。安装完成后,您可以通过JsonConvert.SerializeObject()方法进行序列化。