1:概念
EF Core 是一个ORM(对象关系映射),它使 .NET 开发人员可以使用 .NET对象操作数据库,避免了像ADO.NET访问数据库的代码,开发者只需要编写对象即可。
EF Core 支持多种数据库引擎:
Microsoft SQL Sever
SQLite
Npgsql
MySQL
......
2:获取EF Core
打开NuGet程序包管理器控制台,输入:Install-Package Microsoft.EntityFrameworkCore.SqlServer
3:模型
EF Core 是通过一个模型进行数据库访问的。模型由实体类和表示与数据库中的会话组成的,以及允许你查询和保存数据派生的上下文。
既可以从现有数据库生成模型,也可以使用EF 迁移来完成从模型生成数据库,也就是Database First 和 Code First。
4:Code First
Code First 也就是通过EF迁移来完成从模型生成数据库。就是先写代码,然后生成数据库。
一:创建项目
1.创建一个ASP.NET Core WEB 应用程序,然后新建一个Model文件夹,创建一个名为Client的实体类:
using System.ComponentModel.DataAnnotations; namespace MyProject.Model { public class Client { [Key] public int ID { get; set; } public string Name { get; set; } public int Age { get; set; } public string Hobby { get; set; } public string Pwd { get; set; } } }
注:这个类就是一会生成数据库后数据库中的表
2.在appsettings.json中添加数据库连接字符串:
{ "ConnectionStrings": { "SqlserverConnection": "Data Source=.;Initial Catalog=MyProject;User ID=sa;Password=sql2012" } }
3.创建一个名为Context的文件夹,并在里边创建一个名为DataContext的类:
using Microsoft.EntityFrameworkCore; using MyProject.Model; namespace MyProject.Context { public class DataContext : DbContext { public DataContext(DbContextOptions<DataContext> options) : base(options) { } public DbSet<Client> Client { get; set; } } }
4.然后在startup中获取连接字符串即可:
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using MyProject.Context; namespace MyProject { public class Startup { public readonly IConfiguration _configuration; public Startup(IConfiguration configuration) { _configuration = configuration; } public void ConfigureServices(IServiceCollection services) { services.AddMvc(); services.AddDbContext<DataContext>(options => { options.UseSqlServer(_configuration.GetConnectionString("SqlserverConnection"));//获取数据库连接字符串 }); } public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.Run(async (context) => { await context.Response.WriteAsync("Hello World!"); }); } } }
5.最后使用命令迁移,即可在SqlServer中生成对应的数据库:
打开NuGet程序包管理控制台,先输入 Add-Migration FirstMigration,在输入update-Database。迁移成功后,会创建数据库,以及会在项目中生成一个Migrations文件夹,里面时迁移记录
感觉好麻烦呀,小白刚刚学习,还请大佬指教指教呀,感激不尽!