Return Entity Framework 结果为 JSON

Return Entity Framework result as JSON

我想以 json 格式返回我的 linq 查询结果。我一直在寻找几个小时。

这是我的代码:

public IEnumerable<callersW> GetAllCallersF()
{
  testCDREntities1 context = this.CurrentDataSource;
  var query = (
    from oneCaller in CurrentDataSource.TestTables
    select new
    {
      Created = oneCaller.Created,
      Answered = oneCaller.Answered,
      Destroyed = oneCaller.Destroyed,
      CallerID = oneCaller.CallerId,
      CalledID = oneCaller.CalledId,
      DisconnectionCode = oneCaller.DisconnectionCode,
      RTP_Caller_G107MOS = oneCaller.RTP_Caller_G107MOS,
      RTP_Caller_LostPackets = oneCaller.RTP_Caller_LostPackets,
      RTP_Caller_MaxRfc3550Jitter = oneCaller.RTP_Caller_MaxRfc3550Jitter,
      RTP_Caller_MeanRfc3550Jitter = oneCaller.RTP_Caller_MeanRfc3550Jitter,
      RTP_Called_G107MOS = oneCaller.RTP_Called_G107MOS,
      RTP_Called_LostPackets = oneCaller.RTP_Called_LostPackets,
      RTP_Called_MaxRfc3550Jitter = oneCaller.RTP_Called_MaxRfc3550Jitter,
      RTP_Called_MeanRfc3550Jitter = oneCaller.RTP_Called_MeanRfc3550Jitter,
    }).ToList()
    .Select(x => new callersW
    {
      Created = Convert.ToDateTime(x.Created),
      Answered = Convert.ToDateTime(x.Answered),
      Destroyed = Convert.ToDateTime(x.Destroyed),
      CallerID = x.CallerID,
      CalledID = x.CalledID,
      DisconnectionCode = Convert.ToInt32(x.DisconnectionCode),
      RTP_Caller_G107MOS = Convert.ToDouble(x.RTP_Caller_G107MOS),
      RTP_Caller_LostPackets = Convert.ToDouble(x.RTP_Caller_LostPackets),
      RTP_Caller_MaxRfc3550Jitter = Convert.ToDouble(x.RTP_Caller_MaxRfc3550Jitter),
      RTP_Caller_MeanRfc3550Jitter = Convert.ToDouble(x.RTP_Caller_MeanRfc3550Jitter),
      RTP_Called_G107MOS = Convert.ToDouble(x.RTP_Called_G107MOS),
      RTP_Called_LostPackets = Convert.ToDouble(x.RTP_Called_LostPackets),
      RTP_Called_MaxRfc3550Jitter = Convert.ToDouble(x.RTP_Called_MaxRfc3550Jitter),
      RTP_Called_MeanRfc3550Jitter = Convert.ToDouble(x.RTP_Called_MeanRfc3550Jitter)
    }).ToList();

  return  query;
}

有人可以帮我解决这个问题吗?

添加到您的项目JSON.NET并序列化对象,例如:

string json = JsonConvert.SerializeObject(query);

更多示例here