2012-05-30 37 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