0
       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

しかし、それはすべてのエンティティクラスのフィールドとプロパティをシリアライズします..シリアライズしたいエンティティクラスのフィールドをどのようにシリアライズできますか?

4

1 に答える 1

2

必要なプロパティのみを匿名型に射影できます。

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);
于 2012-05-30T19:52:35.900 に答える