【问题标题】:C# seralize dynamic object with EF result in it (Create JSON object from dynamic c# object)C# 使用 EF 结果序列化动态对象(从动态 c# 对象创建 JSON 对象)
【发布时间】:2017-05-04 10:14:19
【问题描述】:

我有这个代码:

var companyDetails = db.tbl_Mallstore.ToList();

dynamic result = new System.Dynamic.ExpandoObject();
result.count = 1;
result.company = companyDetails.FirstOrDefault();

JavaScriptSerializer serializer = new JavaScriptSerializer();

string output = serializer.Serialize(result);

这会引发错误:

在序列化 'eDurar.Models.tbl_Mallstore 类型的对象时检测到循环引用

在这种情况下它可以工作:

dynamic result = new System.Dynamic.ExpandoObject();
result.count = count;
result.store_name = companyDetails.FirstOrDefault().store_name;

JavaScriptSerializer serializer = new JavaScriptSerializer();
string json = serializer.Serialize(result);

【问题讨论】:

标签: c# json entity-framework serialization dynamic


【解决方案1】:

我必须手动指定所需的字段。我认为其他数据中有一些循环引用。

int count = 0;

var companyDetails = db.tbl_Mallstore.ToList();

count = companyDetails.Count();

dynamic result = new System.Dynamic.ExpandoObject();
result.count = count;
if (count > 0)
{
    result.store = companyDetails.Select(x => new { x.store_name, x.store_id }).FirstOrDefault();
}

return this.Json(result);

【讨论】:

    猜你喜欢
    • 2019-03-25
    • 2014-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 2011-03-09
    • 2019-10-21
    相关资源
    最近更新 更多