什么是EF框架
它是微软封装好一种ADO.NET数据实体模型,将数据库结构以ORM模式映射到应用程序中。
EF框架的优缺点
优点:
1.简洁的Linq to Sql语句大大提高了开发人员的效率,不要再写复杂的sql语句;
2.不再需要再管应用程序如何去连接数据库;
3.EF可以用作用于数据服务和OData Service的基础设施;
缺点:
1.由于linq语句编译之后就是sql,对于这种自动生成的sql语句无法控制;
2.EF的运行机制会消耗大量内存,大大降低了程序运行效率,从而导致降低了用户在客户端的体验效果;
3.一旦数据结构发生变化,需要更新EF数据model;有时还可能会出现找不到更新过的实体类这种情况;
示例
下面展示一些 内联代码片。
using Rbac.Models;
namespace Rbac.Controllers
{
public class RoleController : Controller
{
RbacDBEntities db = new RbacDBEntities();
// GET: Role
public ActionResult Index()
{
第一种新增
//Role role = new Role()
//{
// Name = "招生主任",
// Remark="1"
//};
//db.Roles.Add(role);
//db.SaveChanges();
第二种新增
//Role role2 = new Role()
//{
// Name="招生干事",
// Remark="2"
//};
//db.Entry(role2).State = System.Data.Entity.EntityState.Added;
//db.SaveChanges();
批量新增
//List<Role> roles = new List<Role>()
//{
// new Role(){
// Name="123",
// Remark="3"
// },
// new Role(){
// Name="321",
// Remark="4"
// }
//};
//db.Roles.AddRange(roles);
//db.SaveChanges();
return View();
}
public ActionResult Edit()
{
第一种修改
//Role role2 = new Role()
//{
// ID=8,
// Name="zyk"
//};
//db.Entry(role2).State = System.Data.Entity.EntityState.Modified;
//db.SaveChanges();
第二种修改
var role = db.Roles.Find(8);
role.Name = "zyk";
db.SaveChanges();
return View();
}
public ActionResult Delete()
{
第一种删除
//Role role2 = new Role()
//{
// ID = 8,
//};
//db.Entry(role2).State = System.Data.Entity.EntityState.Deleted;
//db.SaveChanges();
第二种删除
//var role = db.Roles.Find(9);
//db.Roles.Remove(role);
//db.SaveChanges();
List<Role> roles = db.Roles.Where(p=>p.Remark=="2").ToList();
批量删除
db.Roles.RemoveRange(roles);
db.SaveChanges();
return View();
}
}
}
————————————————