EF框架的定义
微软官方提供的ORM工具,ORM让开发人员节省数据库访问的代码时间,将更多的时间放到业务逻辑层代码上。EF提供变更跟踪、唯一性约束、惰性加载、查询事物等。开发人员使用Linq语言,对数据库操作如同操作Object对象一样省事。
作用
优缺点
优点
1、应用程序可以通过更加以应用程序为中心的概念性模型(包括具有继承性、复杂成员和关系的类型)来工作。
2、应用程序不再对特定的数据引擎或存储架构具有硬编码依赖性。
3、可以在不更改应用程序代码的情况下更改概念性模型与特定于存储的架构之间的映射。
4、开发人员可以使用可映射到各种存储架构(可能在不同的数据库管理系统中实现)的一致的应用程序对象模型。
5、多个概念性模型可以映射到同一个存储架构。 · 语言集成查询支持可为查询提供针对概念性模型的编译时语法验证。
缺点
1.由于linq语句编译之后就是sql,对于这种自动生成的sql语句无法控制;
2.EF的运行机制会消耗大量内存,大大降低了程序运行效率,从而导致降低了用户在客户端的体验效果;
3.一旦数据结构发生变化,需要更新EF数据model;有时还可能会出现找不到更新过的实体类这种情况;
EF框架的简单用法
首先自己创建一个数据库,创建一个role(角色)表。表数据自行添加
字段设置一个name,remark备注就行
新增
这些方法都是直接定义在index方法里面的
方法一:
Role role= new Role ()
{
Name = "小王",
Remark = "棒"
};
db.Role .Add(role);
db.SaveChanges();
方法二:
Role role2= new Role ()
{
Name = "佩佩",
Remark = "可以"
};
db.Entry(role2).State = System.Data.Entity.EntityState.Added;
db.SaveChanges();
方法三:
List<Role > roles= new List<Role >()
{
new Role ()
{
Name="lih",
Remark="bang"
},
new Role ()
{
Name="ky",
Remark="niup"
}
};
db.Roles.AddRange(roles);
db.SaveChanges();
修改
方法一:
public ActionResult Edit()
{
//var a = db.Roles.Where(p => p.ID == 22).FirstOrDefault();
//a.Name = "sg";
//db.Entry(a).State = System.Data.Entity.EntityState.Modified;
方法二:
db.SaveChanges();
Role role= new Role()
{
ID = 22,
Remark = "牛"
};
db.Entry(role).State = System.Data.Entity.EntityState.Modified;
db.SaveChanges();
return View();
}
删除
public ActionResult Deletes()
{
List<UserInfo> userd = db.UserInfos.Where(p => p.Remark == "666").ToList();
db.UserInfos.RemoveRange(userd);
return View();
}
如上代码可以直接使用,有误的话可以留言反馈,谢谢大家!