2012-05-30 39 views
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字符串;实体类序列化为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

但它序列化所有实体类字段和属性..我序列化哪个实体类字段我想要连续化?

回答

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); 
+0

谢谢jrummell。我对linq不太好。 – Mehmet