用LINQ进行成绩排名
有一成绩表,字段为:年级、文理科、班级、姓名、总分、班级排名、年级排名。按总分查询出该生在班级的排名和年级的排名(同年级中要分文理)。 LINQ如何写?
------解决方案--------------------int result=db.TableA.Where(c=>c.score>score).Count()+1;
------解决方案--------------------
------解决方案--------------------你这个问题怎么看怎么别扭。
1.按总分查询??比如按600分来查,这样有可能查出多个学生。应该是按主键来查吧。姓名做主键太弱了吧。
2.同年级中要分文理科??你这张表本来就有年级排名了,应该是在插入数据时就要考虑年级排名分文理科。
------解决方案--------------------C# code
var q = db.TBL.Where(n => n.姓名 == "Mike"
&& n.班级 == "32"
&& n.年级 == "三年级"
&& n.文理科 == "文科"
).Select(n => new {n.姓名, n.班级排名, n.年级排名});
------解决方案--------------------
班级排名、年级排名这两个字段根本就不应该有。
难道你没有学过数据库设计范式么?