EF框架作用
1.将模型中定义的实体和关系映射到数据库中
2.从数据库返回的数据实体化为实体对象
3.跟踪我们对实体对象所做的更改
4.并发处理特性
5.将对象更改更新到数据库
6.将对象绑定到控件
DBContext
DBContext主要负责与视为对象的数据进行交互
栗子
1.创建一个SimpleDBContext类继承自DbContext类,并且将其放进放模型的文件夹中,以便使用
using System;
using Microsoft.EntityFrameworkCore;
namespace Simple.Models
{
public class SimpleDBContext:DbContext
{
public SimpleDBContext()
{
}
}
}
2.实现一个类型的DbSet,每个DbSet将映射到数据库中的一个表
using System;
using Microsoft.EntityFrameworkCore;
namespace Simple.Models
{
public class SimpleDBContext:DbContext
{
public SimpleDBContext()
{
}
public DbSet<Product> Products{get; set:}
}
}
3.添加另一构造函数,该构造函数中接受一个 DbContextOptions对象并将其传递给 DbContext 的基础构造函数
using System;
using Microsoft.EntityFrameworkCore;
namespace Simple.Models
{
public class SimpleDBContext:DbContext
{
public SimpleDBContext()
{
}
public SimpleDBContext(DbContextOptions<SimpleDBContext> options)
: base(options)
{
public DbSet<Product> Products{get; set:}
}
}
4.控制器
public class HomeController: Controller
{
public ViewResult Index()
{
var model = new HomePageViewModel();
using (var context = new SimpleDBContext())
{
SQLProductData sqlData = new SQLProductData(context);
model.Products = sqlData.GetAll();
}
return View(model);
}
}
public class SQLProductData
{
private SimpleDBContext _context { get; set; }
public SQLProductsData(SimpleDBContext context)
{
_context = context;
}
public void Add(Product pro)
{
_context.Add(pro);
_context.SaveChanges();
}
public Product Get(int ID)
{
return _context.Products.FirstOrDefault(e => e.ID == ID);
}
public IEnumerable<Product> GetAll()
{
return _context.Products.ToList<Product>();
}
}
public class HomePageViewModel
{
public IEnumerable<Product> Products { get; set; }
}
}
定义了上下文添加新对象的方法,根据ID返回一个数据的方法,返回所有数据列表的方法