第一步:
下载NuGet 包 Microsoft.EntityFrameworkCore.SqlSer 和Microsoft.EntityFrameworkCore包
第二步:
创建Model实体层,创建实体类,与数据库内字段一致,类名与数据库表名一致。内部属性类型与数据库要一致。
第三步:
创建实体类继承与DBContext;
内部存放数据库中的表名 如public DbSet<实体类名> Product { get; set; } 注意:要用到的表都要放在该类里,要不然访问不到数据 数据库类里链接数据库方法: protected override void OnConfiguring(DbContextOptionsBuilder builder) { //链接字符串 String connStr = "Server=localhost;Database=Sales;User Id=sales;Password=sales2018;"; builder.UseSqlServer(connStr); }
第四步:
在Startup中注册服务 services.AddDbContext<实体数据库类名>();
第五步:
新建一个DAL层,新建一个类,编写构造方法 private readonly 实体类数据库名 _context;
(构造方法) public 类名(实体类数据库名 context) { _context = context; }
可以进行数据库的操作了 如:
public Goods GetAllProducts() { Goods products =_context.Goods.Where(p=>p.Id==2).FirstOrDefault(); _context.SaveChanges();
return products;
}
修改数据: 如: Book book = context.Books.Where(b => b.BookID == 2).FirstOrDefault(); book.BookName = "222"; book.Price = 12; //保持到数据库中 //注意:EF上下文会检查容器内部所有的对象,找到带有修改标记的对象,然后根据带有修改标记的属性,生成对应的查询语句 最后执行修改语句 context.SaveChanges();
另一种数据库连接方式
在Startup ConfigureServices类里面添加 //连接数据库 services.AddDbContext<ChContext>(t => { t.UseSqlServer(Configuration.GetConnectionString("CH")); }); services.AddCors(t => { // 指定能访问的域名 t.AddPolicy("LimitRequests", policy => { policy .AllowAnyHeader() .AllowAnyMethod() .AllowAnyOrigin();//允许任何来源的主机访问 }); });
在appsettings.json 里面添加连接字符串 "ConnectionStrings": {"CH": "server=127.0.0.1;database=Blockchain;uid=sa;pwd=123456;"}
在数据库类里面 添加构造函数 public ChContext(DbContextOptions<ChContext> dbContext) : base(dbContext) { }
BLL层不需要继承,只需要依赖注入就行