EF8 code first 模式下去除自动生成表加s(复数形式)全网第一帖

news2024/12/28 5:11:30

前言:

       今天下午一直在纠结这个问题,EF如果采用code first模式,进行迁移,他会表名自动给你加上s形成复数形式,搜了很久找到的觉方案有两种,其中实体类指定表名的方法是可行的,另外一种都是说  modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();  对于EF6是可行的,怎么搜也没有找到EF8的解决方案。

解决问题的过程:

        首先是没有Conventions.Remove 这个方法,再就是找不到PluralizingTableNameConvention这个类。开始还以为是没有System.Data.Entity 引入的问题, 发现按照网上说法要装的是EF6,顿时就觉得不是解决问题之道。搜了一大圈也找不到一点头绪。那么就只好求助于微软官方的文档了。

一、微软官方文档地址:

安装 Entity Framework Core - EF Core | Microsoft Learn

二、解决思路:

  1.  按照EF6中的做法,迁移过程中,EF有些默认的约定,如果不需要使用到这些默认的约定,那么就移除掉这些默认的约定即可。应该EF8中也是这个思路。移除方法多半是Remove。搜索这个条件了。

        2.  找到这个搜索结果,跟我的需求有些接近

        3. 点击进去 ConventionSet.Remove 方法 

定义

命名空间:

Microsoft.EntityFrameworkCore.Metadata.Conventions

程序集:

Microsoft.EntityFrameworkCore.dll

包:

Microsoft.EntityFrameworkCore v8.0.0

重载

展开表

Remove(Type)

删除给定类型的约定。

Remove<TConvention>(List<TConvention>, Type)

删除现有约定。

Remove(Type)

删除给定类型的约定。

C#复制

public virtual void Remove (Type conventionType);

参数

conventionType

Type

要删除的约定类型。

适用于

Entity Framework Core 8.0 和 Entity Framework Core 7.0

产品

版本

Entity Framework Core

7.0, 8.0

Remove<TConvention>(List<TConvention>, Type)

删除现有约定。

C#复制

public static bool Remove<TConvention> (System.Collections.Generic.List<TConvention> conventionsList, Type existingConventionType);

类型参数

TConvention

要删除的约定的类型。

参数

conventionsList

List<TConvention>

要扫描的现有约定实例的列表。

existingConventionType

Type

现有约定的类型。

返回

Boolean

true 如果删除了约定,则为 。

适用于

Entity Framework Core 8.0 和 Entity Framework Core 7.0、

    3.   方法是找到了,那么就是怎么用这个方法了:

    还是继续看官方文档,在这里找到了思路,创建并配置模型 - EF Core | Microsoft Learn

protected override void ConfigureConventions(ModelConfigurationBuilder configurationBuilder)
{
    configurationBuilder.Conventions.Remove(typeof(ForeignKeyIndexConvention));
}

        4. 那么重点就是找到不使用复数的类了。 文档中这句话

 F Core 包括许多默认启用的模型生成约定。 可以在实现 IConvention 接口的类列表中找到所有这些约定。 但是,该列表不包括第三方数据库提供程序和插件引入的约定。

        5. 进入到  IConvention 接口的类列表中查找,里面的类很多,但是没有长得像是去除表复数的。唯一一个跟数据库表相关的  TableNameFromDbSetConvention ,也只能是死马当活马医,试试看了。结果当然是可以。代码如下,在你订一个appcontext的文件中加入就行了。        

    protected override void ConfigureConventions(ModelConfigurationBuilder configurationBuilder)
    {
        configurationBuilder.Conventions.Remove(typeof(TableNameFromDbSetConvention));

    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1965127.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

昇思25天学习打卡营第XX天|LSTM+CRF序列标注

条件随机场&#xff08;CRF&#xff09;是一种用于序列预测的概率图模型&#xff0c;它考虑了序列中元素之间的相互依赖关系。与简单的多分类问题不同&#xff0c;CRF能够捕捉序列中标签的连贯性&#xff0c;如在命名实体识别中&#xff0c;一个词的标签往往依赖于它前面词的标…

【JDK11和JDK8并行与切换】

一、JDK11安装 1、下载jdk11&#xff0c;点击.exe安装在&#xff1a;C:\Program Files\Java\jdk-11\ 2、配置JAVA_HOME 变量名为JAVA_HOME 变量值为jdk安装路径 3、配置PATH 找到系统变量里的PATH 双击或者单击后点击编辑 点击右上角的新建 新建两条 %JAVA_HOME%\bin …

详细介绍Linux iftop 的结果如何查看

目录 1. 安装 iftop 2. 运行 iftop 3. iftop 界面详解 3.1 标题栏 3.2 流量显示区域 3.3 汇总信息 3.4 底部栏 4. 常用选项和快捷键 4.1 常用选项 4.2 常用快捷键 5. 实际案例 6. 真实排查网络【下行带宽过高】问题案例 6.1 【定义出口ip和端口】iftop -P 在流出服…

漏洞打靶AI-web1.0

下载安装靶机后要进行靶机ip的确定&#xff0c;具体步骤可以查看我的上一篇博客&#xff0c;这里就不细说了。 在物理机访问靶机IP地址进入这样一个页面&#xff0c;我们发现这里没有输入框也没有点击按钮&#xff0c;导致我们无处下手&#xff0c;不过我们还可以用工具去扫描…

无人机之社区管理篇

在社区管理中&#xff0c;无人机的应用更是为传统的管理方式带来了革新与便利。 一、安全监控与巡逻 无人机可以配备高清摄像头和红外传感器&#xff0c;进行24小时不间断的监控和巡逻。在社区中&#xff0c;无人机可以用于检测公共区域的安全状况&#xff0c;及时发现异常情况…

【C语言】处理文件错误:详解 strerror, perror, 和 fopen

&#x1f984;个人主页:小米里的大麦-CSDN博客 &#x1f38f;所属专栏:https://blog.csdn.net/huangcancan666/category_12718530.html ⚙️操作环境:Visual Studio 2022 目录 一、引言 二、fopen 函数 解释&#xff1a; 1. 函数原型 2. 参数 3. 代码示例 三、strerror …

形象设计大赛活动方案策划

一、活动流程 1、个人创意服装展示&#xff08;30分&#xff09;&#xff1a;选手自备服装&#xff0c;要能展示现代大学生青春、时尚&#xff0c;富有内涵的高雅气质和礼仪风范&#xff08;如:校园装、运动装、休闲装和职业装&#xff09;。 由评委评判出对选手的第一印象分。…

代码随想录二刷(哈希表)

代码随想录二刷(哈希表) 三数之和思路反正对于我来说是真的难想出来。 若这道题还是采用哈希表的思路去做&#xff0c;非常麻烦&#xff0c;并且还要考虑去重的操作。所以这道题其实用双指针&#xff0c;是更方便的。 具体程序如下&#xff1a; class Solution:def threeSu…

SPON IP网络对讲广播系统的命令执行漏洞复现实验

第一步&#xff1a;使用fofa搜索语句搜索 fofa地址&#xff1a;网络空间测绘&#xff0c;网络空间安全搜索引擎&#xff0c;网络空间搜索引擎&#xff0c;安全态势感知 - FOFA网络空间测绘系统 查询漏洞的语句icon_hash"-1830859634" 第二步&#xff1a;访问网址&…

LangChain大模型应用开发指南-传统编程范式思维的应用

LangChain大模型应用开发指南-传统编程范式思维的应用 上节课&#xff0c;我带领小伙伴们完成了baichuan2量化模型的OpenAI标准接口封装&#xff0c;并完成LangChain对大模型的调用与测试。 今天我们将正式开始LangChain大模型应用开发课程。 组件总览 上图为LangChain的组件与…

软件工程之应用数学

软件工程之应用数学 第 20 章&#xff1a;应用数学20.1 运筹方法20.1.1 网络计划技术20.1.2 线性规划20.1.3 决策论20.1.4 对策论 20.2 数学建模 第 20 章&#xff1a;应用数学 数学是一种严谨、缜密的科学&#xff0c;学习应用数学知识&#xff0c;可以培养系统架构设计师的抽…

机器学习三步走:手写BP神经网络(入门) --> 基于TensorFlow框架开发(开发) --> 基于预训练模型快速构建应用(应用)

目录 前言第一步&#xff1a;手写BP神经网络1 概念简介1.1 神经网络内的概念1.2 神经网络外的概念 2 类BPNetwork2.1 初始化2.2 激活函数2.2.1 Sigmod2.2.2 Linear2.2.3 Sigmod_derivative 2.3 损失函数2.4 前向传播2.5 后向传播2.6 训练模型2.7 预测2.8 绘制损失值变化曲线 **…

实验 19. 用户进程

已完成实验 已完成实验链接 简介 实验 19. 用户进程 总结 main函数创造了1个主线程&#xff0c;两个内核线程&#xff0c;两个用户进程。共5个PCB&#xff0c;进程PCB->pgdir为进程自己的页表首虚拟地址&#xff0c;线程为null。因此本次实验是五个进/线程在来回切换。他…

抖音素材网站有哪些?这几个高质量的抖音无水印素材网站分享

在抖音这个视觉与创意并重的平台上&#xff0c;选择合适的无水印视频素材是提升内容质量的关键。如果你正在寻找既能使你的视频内容更具吸引力&#xff0c;又能避免版权问题的优质素材&#xff0c;那么本文将为你详细介绍几个高质量的抖音无水印素材网站。从国内的蛙学网到国际…

双指针算法大总结!!看完这篇再也没有难的双指针题!!例题C++解法!

题源acwing、力扣 讲解双指针题目一&#xff1a;盛最多水的容器思路AC代码 题目二&#xff1a;查找总价格为目标值的两个商品思路AC代码 题目三&#xff1a;链表的中间节点思路AC代码 题目四&#xff1a;环形链表思路AC代码 题目五&#xff1a;反转字符串中的元音字符思路AC代码…

【Vulnhub靶场AI-WEB-1.0打靶教程】

第一步&#xff1a;查看虚拟机的ip 第二步&#xff1a;扫描ip下开放的80端口 第三步&#xff1a;扫描查到的ip地址下的目录 第四步&#xff1a;访问查到的目录 访问robot.txt 第五步:访问robot.txt显示出的目录 第六步&#xff1a;打开kali终端&#xff0c;使用sqlmap功能 sq…

【Vue3】标签的 ref 属性

【Vue3】标签的 ref 属性 背景简介开发环境开发步骤及源码 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努力学习奋斗的日子。…

win10游戏出现错误代码0xc0000142是什么情况?几种方法修复错误代码0xc0000142

错误代码 "0xc0000142" 通常表示应用程序无法正确启动&#xff0c;这经常与系统文件损坏、兼容性问题或环境设置不当有关。下面列出了一些步骤&#xff0c;可能帮助你解决在Windows 10上运行游戏时遇到的0xc0000142错误。 快速修复错误代码0xc0000142问题 1. 以管理…

更新Win11后出现无法检测到相机的情况

使用腾讯会议的时候发现摄像头用不了&#xff0c;显示“未检测到摄像头”&#xff0c;打开设置显示“未找到任何相机” 试了很多方法都解决不了&#xff0c;后用了下面这种方法成功解决&#xff0c;相机就能用了 1.下载360驱动大师&#xff0c;检测下有没有要更新或者添加的驱…

希尔排序【C语言】

希尔排序 前言 在上一篇文章中我们了解了直接插入排序算法&#xff08;建议先阅读&#xff09;&#xff0c;但其实这个算法还是有一定优化空间的。而它优化之后&#xff0c;就变成了另一个大名鼎鼎的排序算法&#xff1a;希尔排序。 希尔排序(Shell’s Sort)是插入排序的一种…