我通过两张表里查询出这样的json数据,用linq请问怎么写?
需要获取的数据这样:
{"name":"张三",
"sex":"男",
"age":18,
"grade":
{"gname":"三年八班",
"gdesc":"初三年级八班"
}
}
第一张表的学生(student)基本信息:
id no name,sex,age,
第二张表的年级(studentgrade)信息:
id gname gdesc
两张表通过id关联,这两张表一对多的关系,student表一条记录,对应这个学生年级表有两条记录。
返回的数据定义了一个类,定义的类如下:
public class Stud
{
public int id{get;set;}
public string no {get;set;}
public string sex{get;set;}
public int age{get;set;}
public StudGrade grade{get;set;}
}
public class StudGrade
{
public int id{get;set;}
public string gname{get;set;}
public string gdesc{get;set;}
}
我在具体查询的函数里:
public class ...Repository : ...Repository, IDisposable
{
public List<Stud> GetStudentByNo(string strNo)
{
using (AppDBEntities db = new AppDBEntities())
{
var results =
(
from ds in db.student
from dsq in db.studentgrade
where ds.no == strNo
where dsq.id== ds.id
select new Stud{ Id = ds.Id, no = ds.no , sex= ds.sex,grade.gname=dsq.gname, grade.gdesc= dsq.gdesc}
).Distinct().ToList();
return results;
}
}
这样返回来是两条记录形式,能否在这个函数里,做个处理,一对多表,希望以一条记录形式返回来,以json方式返回如下:
{"name":"张三",
"sex":"男",
"age":18,
"grade":
{"gname":"三年八班",
"gdesc":"初三年级八班"
}
}