【问题标题】:Entity class serialize to json实体类序列化为 json
【发布时间】:2012-05-30 19:46:30
【问题描述】:
       try
        {
            using (EXAMINATIONEntities entity = new EXAMINATIONEntities())
            {
                JavaScriptSerializer serializer = new JavaScriptSerializer();
                var exams = entity.TBL_EXAMS.Where(x => x.USERID == userId);                    
                return serializer.Serialize(exams);
            }
        }
        catch (Exception ex)
        {
            return "-1";
            throw ex;
        }

此代码运行良好。但是返回一个像这样的json字符串;

[{"EXAM_ID":1,"EXAM_TEXT":"sdf","EXAM_ORDER":1,"SITUATION":true,"USERID":100,"DBDATETIME":null,"TBL_QUESTIONS":[], "EntityState":2,"EntityKey":{"EntitySetName":"TBL_EXAMS","EntityContainerName":"EXAMINATIONEntities","EntityKeyValues":

我只想序列化表字段: "EXAM_ID":1,"EXAM_TEXT":"sdf","EXAM_ORDER":1,"SITUATION":true,"USERID":100, "DBDATETIME":null

但它会序列化所有实体类字段和属性。如何序列化我想要序列化的实体类字段?

【问题讨论】:

    标签: c# json linq entity-framework serialization


    【解决方案1】:

    您只能将您想要的属性投影到匿名类型:

    JavaScriptSerializer serializer = new JavaScriptSerializer();
    var exams = entity.TBL_EXAMS.Where(x => x.USERID == userId)
               .Select(exam => new {
                          exam.EXAM_ID, exam.EXAM_TEXT, exam.EXAM_ORDER /* etc */
                       });                    
    return serializer.Serialize(exams);
    

    【讨论】:

      猜你喜欢
      • 2020-05-26
      • 1970-01-01
      • 2015-01-21
      • 1970-01-01
      • 2021-09-27
      • 2012-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多