ASP.Net Core -- EF Core
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文件夹,里面时迁移记录
结束!