EF
Entity Framework 架构(简称EF)
优点
1、应用程序可以通过更加以应用程序为中心的概念性模型(包括具有继承性、复杂成员和关系的类型)来工作。
2、应用程序不再对特定的数据引擎或存储架构具有硬编码依赖性。
3、可以在不更改应用程序代码的情况下更改概念性模型与特定于存储的架构之间的映射。
4、开发人员可以使用可映射到各种存储架构(可能在不同的数据库管理系统中实现)的一致的应用程序对象模型。
5、多个概念性模型可以映射到同一个存储架构。 · 语言集成查询支持可为查询提供针对概念性模型的编译时语法验证。
在MVC中引入实体模型
创建MVC项目
在Model文件夹中添加新建项
找到Data项 ,添加ADO.NET 实体数据模型
选中数据库进行添加(在添加数据表的时候,勾选上是否区分单复数形式,为了试题类型命名规范)
在添加实体模型成功后,会在.config文件中会添加配置文件
新增
TestDB6Entities db = new TestDB6Entities();
db为实例化实体类的名字
//ClassInfo 是一个实体类
var classinfo = new ClassInfo()
{
Name = "添加的信息",
Remark = "添加的信息",
TeacherID = "添加的信息",
Term = "添加的信息"
};
db.ClassInfos.Add(classInfos);
db.SaveChanges();
//最后使用SaveChanges()进行保存
//把状态的实体映射回数据库。
AddRange()可以添加多条数据
List<ClassInfo> classInfos = new List<ClassInfo>() {
new ClassInfo()
{
Name = "添加的信息",
Remark = "添加的信息",
TeacherID = "添加的信息",
Term = "添加的信息"
},
new ClassInfo()
{
Name = "添加的信息",
Remark = "添加的信息",
TeacherID = "添加的信息",
Term = "添加的信息"
}
};
db.ClassInfos.AddRange(classInfos);
db.SaveChanges();
添加方法还可以使用
db.Entry(entity).State = EntityState.Added; 添加
db.Entry(classInfos).State = System.Data.Entity.EntityState.Added;
修改
修改的两种方法
1:先查询再修改,修改某个属性,不会影响其他属性的变化
var lth = db.ClassInfos.Find(4);
lth.Remark = "修改的信息";
db.SaveChanges();
2:new 对象,将对象的状态,改为修改状态,这样,可能将其他的属性设置为空
ClassInfo classinfo2 = new ClassInfo()
{
ID = "修改的信息",
Name = "修改的信息",
Term = "修改的信息",
TeacherID = "修改的信息",
Remark = "修改的信息"
};
db.Entry(classinfo2).State = System.Data.Entity.EntityState.Modified;
db.SaveChanges();
删除
1:先查询再删除
var lths = db.ClassInfos.Find(5);//找到ID为5的数据
db.ClassInfos.Remove(lths);//进行删除
db.SaveChanges();
2:new 对象,将对象的状态,改为删除状态
var delete = new ClassInfo()
{
ID = 4 //找到ID为4的数据
};
db.Entry(delete).State = System.Data.Entity.EntityState.Deleted;//将对象的状态改为删除
db.SaveChanges();
查询
//精确查询
var select1 = db.ClassInfos.Where(p => p.Name == "条件").ToList();
//模糊查询
var select2 = db.ClassInfos.Where(p => p.Name.Contains("条件")).ToList();
//组合查询-&&
var select3 = db.ClassInfos.Where(p => p.Term == "条件" && p.TeacherID == "条件").ToList();
//组合查询--||
var select4 = db.ClassInfos.Where(p => p.Term == "条件"|| p.TeacherID == "条件").ToList();