首页 > 数据库技术 > 详细

.Net5使用EFCore CodeFirst模式 数据迁移并实现DBContext依赖注入

时间:2021-04-10 01:19:46      阅读:29      评论:0      收藏:0      [点我收藏+]

1.新建空白解决方案 EFCoreDemo ,添加一个Api项目 EFCoreDemo.API 和一个类库 EFCoreDemo.Model

技术分享图片

2.EFCoreDemo.Model 中使用NuGet添加依赖项 :

  • Microsoft.EntityFrameworkCore

  • Microsoft.EntityFrameworkCore.Tools

  • Microsoft.EntityFrameworkCore.SqlServer (我这里使用的是SqlServer数据库,根据不同的数据库自行选择)

EFCoreDemo.Api 中使用NuGet添加依赖项 :

  • Microsoft.EntityFrameworkCore.Design

技术分享图片

3.EFCoreDemo.Model中创建 Models文件夹 ,添加User实体类

技术分享图片

public class User
    {
        public int Id { get; set; }
        public string UserName { get; set; }
        public string Password { get; set; }
    }

4.EFCoreDemo.Model中添加数据库上下文 EFCoreContext 类

技术分享图片

using EFCoreDemo.Model.Models;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Text;

namespace EFCoreModel
{
    public class EFCoreContext : DbContext
    {
        public EFCoreContext(DbContextOptions<EFCoreContext> options) : base(options)
        {

        }
        public DbSet<User> Users { get; set; }
    }
}

5.appsettings 文件中配置连接字符串(改成自己的)

技术分享图片

 "ConnectionStrings": {
    "Default": "Server=.;DataBase=Test;uid=sa;pwd=123456"
  }

6.Startup 的 ConfigureServices 方法中注入

技术分享图片

services.AddDbContext<EFCoreContext>(opt => opt.UseSqlServer(Configuration.GetConnectionString("Default")));

7.将 EFCoreDemo.API 设为启动项目,将程序包管理控制台默认项目设为 EFCoreDemo.Model

? 执行命令 add-migration i1(i1是迁移版本名称,可以自定义)

技术分享图片

技术分享图片

8.程序包管理控制台执行命令 update-database 更新数据库,然后到数据库中查看,可以看到已经执行成功

技术分享图片

9.经过以上步骤,就可以在项目中使用了,新建一个 User控制器测试一下

using EFCoreDemo.Model.Models;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace EFCoreDemo.API.Controllers
{
    [Route("api/[controller]/[action]")]
    [ApiController]
    public class UserController : ControllerBase
    {
        private readonly EFCoreContext _db;

        public UserController(EFCoreContext eFCoreContext)
        {
            this._db = eFCoreContext;
        }
        [HttpGet]
        public List<User> GetUsers()
        {
            List<User> userList = _db.Users.ToList();
            return userList;  
        }
        [HttpPost]
        public bool PostUser([FromForm] User user)
        {
            _db.Users.Add(user);
            bool b = _db.SaveChanges()>0;
            return b;
        }
    }
}

.Net5使用EFCore CodeFirst模式 数据迁移并实现DBContext依赖注入

原文:https://www.cnblogs.com/yuzhouk/p/14638474.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!