where_model wm=new where_model ();
wm.kid = 58;
IList<teacher> mlist = BasicDataProxy.teacher_GetList(wm);

IList<kin_roleinfo> klist = BasicDataProxy.kin_roleinfo_GetList(wm);

mlist = (from x in mlist
where (x.title == "" && x.did != 1324 && x.userid>0)
orderby x.did
select x
).ToList<teacher>();

var list = (from x in mlist
join p in klist on x.kid equals p.kid
where (p.rid > 1000)
select new kininfo()
{

kid=x.kid,
rid=p.rid,
title=x.title,
uname=x.uname
});

var list = (from x in mlist
join p in klist on x.kid equals p.kid
where (p.rid > 1000)
group p by new {
x.kid,
x.uname
}into g
select new kininfo()
{

kid = g.Count(),
rid = g.Sum(x=>x.rid+g.Key.kid),
uname=g.Key.uname
});