• efcore反向共工程,单元测试


    1.安装efcore需要的nuget

    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.24" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.24" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.24" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.23">
          <PrivateAssets>all</PrivateAssets>
          <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
        </PackageReference>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2.安装efcore cli工具

    dotnet tool install --global dotnet-ef
    
    • 1

    3.在终端中执行下面的命令
    在这里插入图片描述

     dotnet ef dbcontext scaffold "server=.;uid=sa;pwd=peng@123;database=ide" Microsoft.EntityFrameworkCore.SqlServer --output-dir Models -c EFcoreDbContext
    
    • 1

    执行完成后生成你数据库中对应的实体代码和数据上下文
    在这里插入图片描述
    4.每次的查询结果输出sql(在上下文中添加logTo方法)

      protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            {
                //每次运行时生成sql语句
                optionsBuilder.LogTo(Console.WriteLine, LogLevel.Information);
                if (!optionsBuilder.IsConfigured)
                {
    #warning To protect potentially sensitive information in your connection string, you should move it out of source code. You can avoid scaffolding the connection string by using the Name= syntax to read it from configuration - see https://go.microsoft.com/fwlink/?linkid=2131148. For more guidance on storing connection strings, see http://go.microsoft.com/fwlink/?LinkId=723263.
                    optionsBuilder.UseSqlServer("server=.;uid=sa;pwd=peng@123;database=ide");
                }
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    5.安装nunit单元测试Nuget

      <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
      <PackageReference Include="NUnit" Version="3.13.2" />
      <PackageReference Include="NUnit3TestAdapter" Version="4.3.0" />
    
    • 1
    • 2
    • 3

    6.创建测试类

    using EfcoreTest.Models;
    using Microsoft.EntityFrameworkCore;
    using NUnit.Framework;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace EfcoreTest
    {
        public class Test1
        {
            [Test]
            public async Task serach()
            {
                using (EFcoreDbContext efcore = new EFcoreDbContext())
                {
                    var list = await efcore.AspNetRoles.ToListAsync();
    
                    Console.WriteLine(list.Count);
                }
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    7.点击方法右击运行测试

    在这里插入图片描述
    8.查看输出结果
    在这里插入图片描述
    也可以在测试资源管理器中查看
    在这里插入图片描述
    补充:运行时提示有多个入口点,需要指定入口文件
    项目右击-属性-应用程序-常规-启动对象(选择自己项目启动的文件入口)
    在这里插入图片描述

  • 相关阅读:
    空调开高一度觉得热、开低一度觉得冷的问题原因,DIY外加温控器解决
    ELF文件格式-笔记
    基于NCNN的OCR模型的安卓移植
    数据库事务的四种隔离级别
    CIKM 2022 AnalytiCup Competition: 联邦异质任务学习
    搜索与图论:匈牙利算法
    可控硅的两种触发方式:移相触发和过零触发
    MapReduce(二)
    git常用命令和参数有哪些?【git看这一篇就够了】
    【redis】Spring之RedisTemplate配置与使用
  • 原文地址:https://blog.csdn.net/qq_41942413/article/details/134399958