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