Asp.NET Core 使用EF连接SQLserver,采用数据库优先创建实体模型模式

1、前言

        .net core是一个新的、开源的、跨平台框架,它用于构建适用于跨操作系统的应用程序,包括Windows、Mac和Linux。

        一开始用这个工具搭建数据库时,老师讲解时使用的是Code First(代码优先)的模式封装实体类,但我使用的时候因为我那个数据库表太多了,一个一个实体类设计太费劲了,就换了一种方式:数据库优先封装实体模型。

2、使用scaffold指令从数据库生成实体类


2.1、在项目中导入EF Core相关包

Asp.NET Core 使用EF连接SQLserver,采用数据库优先创建实体模型模式_第1张图片

 Asp.NET Core 使用EF连接SQLserver,采用数据库优先创建实体模型模式_第2张图片

EF Core相关包
1:Microsoft.EntityFrameworkCore.SqlServer	Sql Server数据库EF提供程序
2:Microsoft.EntityFrameworkCore.Design		设计时EF共享库
3:Microsoft.EntityFrameworkCore.Tools		EF的NuGet包管理器命令工具

注意包的版本与项目版本不可出入太大,如项目是5.0的,包的版本就不要高于或低于5.0

2.2、输入指令

 相关包导入后,进入包管理控制台:

Asp.NET Core 使用EF连接SQLserver,采用数据库优先创建实体模型模式_第3张图片

执行自动生成实体类的命令(数据库连接字符串就填自己的):

Scaffold-DbContext "Data Source=.;Initial Catalog=DB_ERP;Integrated Security=True" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

 最后结果就是这样

Asp.NET Core 使用EF连接SQLserver,采用数据库优先创建实体模型模式_第4张图片

2.3、 自动生成,更新数据库实体类的方法

当项目后期,对数据库进行了修改,实体类也需要进行更新。

Scaffold-DbContext "Data Source=.;Initial Catalog=DB_ERP;Integrated Security=True" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Model -Force 

在原先的指令后加上-Force  。

3、补充

做完以上步骤,你运行接口的时候,可能会报以下错误:

System.InvalidOperationException: Unable to resolve service for type 'ERP.Models.DB_ERPContext' while attempting to activate 'ERP.Controllers.AddPuOrdersController'.

Asp.NET Core 使用EF连接SQLserver,采用数据库优先创建实体模型模式_第5张图片 解决办法:

  1.  找到进入Startup.cs文件
  2. 在ConfigureServices方法内添加(里面填入你的数据库上下文):
     services.AddTransient();

 有问题请私信或留言哦!

你可能感兴趣的:(.net,core,.netcore,visual,studio,后端)