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文件夹,里面时迁移记录

结束!

posted @ 2020-02-03 20:42  初晨~  阅读(348)  评论(0编辑  收藏  举报