我有一个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接收数据了。