两种通过Model查询数据库数据的方法

HNQ_1102 2019-04-08 08:55:36
两种通过Model查询数据库数据的方法
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:Visual Studio
作者:胡宁淇
撰写时间:2019年4月2日
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SYS_Academe(学院表):AcademeID(学院ID),AcademeName(学院表名称)。

SYS_Specialty(专业表):SpecialtyID(专业ID),AcademeID(学院ID),SpecialtyName(专业名称)。

SYS_Subject(课程表):SubjectID(课程ID),SpecialtyID(专业ID),SubjectName(课程名称)。

PW_Achievement(成绩表):AchievementID(成绩ID),StudentID(学生ID),SubjectID(课程ID),Achievement(成绩)。

PW_Student(学生表):StudentID(学生ID),AcademeID(学院ID),SpecialtyID(专业ID), SubjectID(课程ID),StudentName(姓名),StudentSex(学生性别),StudentAge(学生年龄)。

假如上面是一个数据库中的各个表,那么我们想要通过Model查询数据库中的数据有三种方法。
由于我们使用的是ASP.NET MVC模式,在查询之前先要把数据库的表映射到Model里面来
将数据库映射过来的表放在Model里面,并给他一个名称:CQUPT

如果我们想查询数据库的整个学院表,我们可以在控制器里(Controller)写一个方法

在此之前我们首先要实例化Model:
Models.CQUPTEntities myModel = new Models.CQUPTEntities();
Public ActionResult SelectAcademe(){
Linq语句查询数据,由于我们知道数据类型,所以我们用一个List列表接收,在后面以ToList()结尾。
List<SYS_Academe>AcademeData=(from tbAcademe in myModel. SYS_Academe
Select tbAcademe).ToList();

Linq语句查询数据,由于我们不知道数据类型,所以我们用一个var变量接收,它会根据我们给这个变量赋的值去判断是什么数据类型。
var AcademeData1=from tbAcademe in myModel.SYS_Academe Select tbAcademe

Lambda表达式, 运算符“=>”,该运算符读为“goes to” 语法:参数 => 表达式(方法体)
var AcademeData2= myModel. SYS_Academe.Select()
return Json (AcademeData, JsonRequestBehavior.AllowGet)
}
如果我们想要查询某个表里面的字段,比如学院ID,学院名称,那么可以通过new 运算符和对象初始值创建匿名类型
Public ActionResult SelectAcademe1(){
注意,这里面的Id和Name字段我们是封装在一个Select实体类里面,所以实体类里面的首字母是大写就是大写,是小写就是小写
List<Select> listAcademe=(from tbAcademe in myModel. SYS_Academe
select new Select {
Id=tbAcademe. AcademeID
Name= tbAcademe. AcademeName
}).ToList
这里面的id和name是变量,不限制大小写
var listAcademe1=from tbAcademe in myModel. SYS_Academe
select new {
id=tbAcademe. AcademeID
name= tbAcademe. AcademeName
}
var listAcademe2=myModel. SYS_Academe.Select(m=>new{
id=tbAcademe. AcademeID
name= tbAcademe. AcademeName
})
return Json (listAcademe, JsonRequestBehavior.AllowGet);
}
如果我们想要查询所有学生的成绩,课程名称,专业名称,学院名称,性别,姓名,年龄,那就是一个多表查询。多表查询就是通过各个表主键与外键的连接关系进行查询
Public ActionResult SelectStudent(){
var listStudent=from tbStudent in myModel. PW_Student
join tbAchievement in myModel. PW_Achievement on tbStudent. StudentID equals tbAchievement.AchievementID
join tbSpecialty in myModel.SYS_Specialty on tbStudent.SpecialtyID equals tbSpecialty.SpecialtyID
join tbSubject in myModel. SYS_Subject on tbSubject.SpecialtyID equals tbSpecialty.SpecialtyID
join tbAcademe in myModel. SYS_Academe on tbStudent. AcademeID equals tbAcademe. AcademeID
select new {
Achievement= tbAchievement. Achievement
SubjectName= tbSubject. SubjectName
SubjectName = tbSpecialty. SubjectName
AcademeName=tbAcademe.AcademeName
StudentSex=tbStundent. StudentSex
StudentName=tbStudent.StudentName
StudentAge=tbStudent.StudentAge
}
return Json (listStudent, JsonRequestBehavior.AllowGet);
}
...全文
95 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧