我是靠谱客的博主 唠叨向日葵,最近开发中收集的这篇文章主要介绍.net core 创建WebAPI以及使用EF DBFirst框架使用方法与疑问解答(.net 6),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

EF语法包:

Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore
Install-Package Microsoft.EntityFrameworkCore.SqlServer.Design
Install-Package Microsoft.EntityFrameworkCore.Tools

生成实体模型:

Scaffold-DbContext "Server=.;Database=h;User ID=admin;Password=123;Trusted_Connection=False;" Microsoft.EntityFrameworkCore.SqlServer

修改实体模型:

Scaffold-DbContext Server=.;Database=h;User ID=admin;Password=123;Integrated Security=True" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Model -Force

把生成的实体和上下文都输出到某个文件夹命令

Scaffold-DbContext "Server=.;Database=h;User ID=admin;Password=123;Trusted_Connection=False;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir {文件夹名}

增加JSON格式脚手架:

Install-Package Microsoft.AspNetCore.Mvc.NewtonsoftJson

若想增加某个版本json脚手架,需要加入后缀如:

Install-Package Microsoft.AspNetCore.Mvc.NewtonsoftJson -version 6.0

问题与解决方案:

1、问题:

Your startup project 'XXX' doesn't reference Microsoft.EntityFrameworkCore.Design. This package is required for the Entity Framework Core Tools to work. Ensure your startup project is correct, install the package, and try again.

解决方案:

给控制器层项目添加包:

Install-Package Microsoft.EntityFrameworkCore.Design

2、问题:

Could not load assembly 'XXX.Model'. Ensure it is referenced by the startup project 'XXX_API'.

解决方案:

此报错是因为EF实体生成的那层没有被其他层引用,将项目引用设置好即可。

3、问题:

A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - 证书链是由不受信任的颁发机构颁发的。)

解决方案:

在数据库在登录时,更改选项的连接属性,解决方案、信任服务器证书选项都选择或者都不选择,不能只选一个,在VS中连接字符串最后加入以下代码

 Encrypt=True;TrustServerCertificate=True;

4、问题:去除生成实体类时报的警告(强迫症患者使用)

解决方案:

删除生成的上下文实体类中方法

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
#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=.;Database=h;User ID=admin;Password=123;Encrypt=True;TrustServerCertificate=True;");

然后在此类中添加方法:

public FreigthBillContext(DbContextOptions<FreigthBillContext> options) : base(options) { }

正常来说这是一个默认就有的带参构造函数,以防万一可以搜索一下方法名来确定是否存在,重点在后面带一个base(options)

在Program.cs中添加代码:

builder.Services.AddDbContext<FreigthBillContext>(x=>x.UseSqlServer(builder.Configuration.GetConnectionString("FreigthBill")));

注意UseSqlServer这个方法只有安装下面这个包后才可正常使用,否则会报错找不到这个方法

Install-Package Microsoft.EntityFrameworkCore.SqlServer

(此语句就是第一部分安装EF包中第一条安装语句)

最后

以上就是唠叨向日葵为你收集整理的.net core 创建WebAPI以及使用EF DBFirst框架使用方法与疑问解答(.net 6)的全部内容,希望文章能够帮你解决.net core 创建WebAPI以及使用EF DBFirst框架使用方法与疑问解答(.net 6)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(131)

评论列表共有 0 条评论

立即
投稿
返回
顶部