在ASP.NET Core 2.0 web项目中使用EntityFrameworkCore
一、安装EFCode包
EFCore需要根据不同的数据库选择不同的数据库提供程序database provider,各数据库的包地址:https://docs.microsoft.com/zh-cn/ef/core/providers/
使用sqlserver数据库使用的是Microsoft.EntityFrameworkCore.SqlServer包,支持SQL Server 2008 及以上版本
Microsoft.EntityFrameworkCore.SqlServer包依赖Microsoft.EntityFrameworkCore
和Microsoft.EntityFrameworkCore.Relational两个包
新建Core2 Web Application (Model-View-Controller)项目,Microsoft.EntityFrameworkCore.SqlServer 已经默认安装到了 Microsoft.AspNetCore.All元包里面,不需要再次安装
二、建立实体并添加EF上下文
给每个实体创建一个DbSet属性,每一个Dbset相当于数据库的一张表,每一个实体相当于数据库的一行
public class EFDbContext : DbContext { public EFDbContext(DbContextOptions<EFDbContext> options) : base(options) { } public DbSet<Admin> Admins { get; set; } public DbSet<Company> Companies { get; set; } }
可以重写DbContext的OnModelCreating来指定实体对应的数据库表名,默认数据库使用实体的复数做为表名
protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<Admins>().ToTable("Admin"); }
三、在DI注册EF上下文,Startup.cs文件里面的ConfigureServices方法里面注册EF上下文
public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddDbContext<EFDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); services.AddMvc().AddJsonOptions(option => { option.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver(); } ); }
数据库连接配置在appsettings.json文件里面:
"ConnectionStrings": { "DefaultConnection": "Data Source=.\\SQLExpress;Initial Catalog=DbTest;User ID=sa;Password=sa" },
DI会在创建控制器时,通过构造函数注入EF上下文,
public class AdminsController : SysBaseController { private readonly EFDbContext _context; public AdminsController(EFDbContext context) { _context = context; } }
上一篇: cdr怎么绘制简笔画效果的蝴蝶图形?
推荐阅读
-
在ASP.NET Core 3.0中使用Swagger
-
在Asp.Net或.Net Core中配置使用MarkDown富文本编辑器有开源模板代码(代码是.net core3.0版本)
-
ASP.NET Core 3.0 : 二十八. 在Docker中的部署以及docker-compose的使用
-
在Asp.Net Core中配置使用MarkDown富文本编辑器实现图片上传和截图上传(开源代码.net core3.0)
-
在 ASP.NET Core 项目中使用 npm 管理你的前端组件包
-
在Mac上开发使用yoeman构建Asp.net core项目并且实现分层引用
-
在ASP.NET Core中创建内部使用Scoped服务的Quartz.NET宿主服务
-
在 ASP.NET Core 项目中使用 AutoMapper 进行实体映射
-
使用HTTP-REPL工具测试ASP.NET Core 2.2中的WEB API项目
-
jwt-在asp.net core中的使用jwt