閱讀856 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Linq查詢中類型的轉化以及序列化XXX對象時檢測到循環引用

 

我有一個Studen類型,有5個字段,num,name,birth,idcard,classId,我們一般寫Linq查詢的時候就是這樣寫

List<Student> stus =  from Student s in dc.Student select s;

 

那麼其實我隻想用其中的兩個字段num,name,我就需要寫一個dto

StudentDto: num,name

List<Student> stus =  from Student s in dc.Student

                           select newStudentDto

                           {

                                Num = s.Num,

                                Name = s.Name

                           };

 

我們注意到classId屬於外鍵,表示一種關係。這個字段的存在,使我們在序列化這個列表對象時(ajax操作時拿到json數據),會報錯——序列化XXX對象時檢測到循環引用。

 

這個時候我們就需要利用DTO了,取出要用的字段即可。

 

List<Student> stus =  from Student s in dc.Student

                           select newStudentDto

                           {

                                Num = s.Num,

                                Name = s.Name

                           };

 

 JavaScriptSerializer jss = new JavaScriptSerializer();
 Response.Write(jss.Serialize(stus));
 Response.End();

 

前台就可以用$.getJSON接收數據了。

最後更新:2017-04-02 22:16:31

  上一篇:go Ubuntu10.10(64位)編譯Android2.3源碼問題解決
  下一篇:go cygwin完整版下載地址