EF框架 简单增删改查
什么是Entity Framework
实体框架(Entity Framework)是微软以ADO.Net为基础开发出来的对象关系映射(ORM)解决方案,它解决了对象持久化问题,将程序员从编写麻烦的SQL语句当中解放出来。
相对于传统的ADO等各种数据库操纵技术来说,微软的ADO.Net更为先进,它封装了很多底层操作,抽象了接口,针对接口编程,将调用统一化。
EF框架的使用
1,新建一个数据库,在数据库中建上一个classinfo表 加若干字段
2,在Models文件夹内添加一个新建项,在Data里面点击ADO.NET 实体数据模型,选择数据库,添加实体模型
新增
// //新增
var classinfo = new ClassInfo()
{
Name = "2018173807",
Remark = "七班",
TeacherID = 1,
Term = 2
};
//第一种方法 使用Add()方法添加
db.ClassInfos.Add(classinfo);
//第二种方法 讲状态改为Added实现添加
db.Entry(classinfo).State = System.Data.Entity.EntityState.Added;
db.SavaChange();
//批量新增
List<ClassInfo> classes = new List<ClassInfo>()
{
new ClassInfo()
{
Name="2018173808",
Remark="七班",
TeacherID=1,
Term=2
},
new ClassInfo()
{
Name="2018173808",
Remark="七班",
TeacherID=1,
Term=2
}
};
修改
//修改2种方式
//一,先查询,修改整个属性,不会影响其他属性变化
var classinfo1 = db.ClassInfos.Find(1);
classinfo1.Remark = "六班";
db.SavaChange();
//二,new对象,将对象的状态改为修改状态,弊端是会将未赋值属性设置为空
ClassInfo classinfo2= new ClassInfo()
{
ID=1,
Name="2018173805",
Term=1,
TeacherID=1,
Remark="五班"
};
db.Entry(classinfo2).State = System.Data.Entity.EntityState.Modified;
db.SavaChange();
删除
//删除两种方式
//先根据ID查询,再删除
var c1 = db.ClassInfos.Find(1);
db.ClassInfos.Remove(c1);
db.SavaChange();
//new一个对象,将状态改为删除状态
var c2 = new ClassInfo()
{
ID=1
};
db.Entry(c2).State = System.Data.Entity.EntityState.Deleted;
db.SavaChange();
//批量删除
List<ClassInfo> info1 = db.ClassInfos.Where(p => p.Remark == "五班").ToList();
db.ClassInfos.RemoveRange(info1);
db.SavaChange();
查询
//精确查询,查询班级号为2018173806的
var classInfos1 = db.ClassInfos.Where(p => p.Name == "2018173806").ToList();
//模糊查询,查询班级号含有2018的
var classInfos2 = db.ClassInfos.Where(p => p.Name.Contains("2018")).ToList();
//组合查询,查询学期是1同时老师也是1的
var classInfo3 = db.ClassInfos.Where(p => p.Term == 1 && p.TeacherID == 1).ToList();
//组合查询,查询学期是2或者老师是2的
var classInfo4 = db.ClassInfos.Where(p => p.Term == 2 || p.TeacherID == 2).ToList();
END THANKS