如何使用JSON.NET序列化对象数组

时间:2014-06-01 07:32:03

标签: asp.net json json.net

我记得有一位朋友告诉我,我可以把任何内容扔进JSON.NET并将它们序列化为JSON格式。

    public string GetRecords(string apiKey, DateTime start, DateTime end)
    {
        var user = db.Users.SingleOrDefault(u => u.Id == apiKey);

        if (user == null)
        {
            return string.Empty;
        }

        var records = db.Histories.Where(h => h.Date >= start && h.Date <= end);

        JavaScriptSerializer s = new JavaScriptSerializer();

        return JsonConvert.SerializeObject(records);
    }

但现在我有一个例外:

  

已经有一个与此命令关联的开放DataReader   必须先关闭。

请帮忙。

2 个答案:

答案 0 :(得分:3)

在记录上调用.ToList(),然后再将其传递给JsonConvert.SerializeObject

答案 1 :(得分:0)

您可能没有在配置文件中启用多个活动结果集(MARS)。

关注此link

基本上需要添加

"MultipleActiveResultSets=True"

或者您可以按照3dd

的建议急切加载

更多帮助There is already an open DataReader associated with this Command which must be closed first