广告
返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >EntityFrameworkCore表名映射
  • 817
分享到

EntityFrameworkCore表名映射

2024-04-02 19:04:59 817人浏览 薄情痞子
摘要

表名映射 我们知道:如果是在默认情况下,使用EFCore Code First的方式生成的表名跟数据上下文类中定义的实体属性的名称是一致的,例如: public DbSet<B

表名映射

我们知道:如果是在默认情况下,使用EFCore Code First的方式生成的表名跟数据上下文类中定义的实体属性的名称是一致的,例如:

public DbSet<Blog> Bloges123 { get; set; }

这里定义的属性名称是Bloges123,那么最后数据库中生成的表名也叫Bloges123。看下面的测试

我们首先添加迁移,每次迁移都会生成一个对应的迁移记录类,代码如下图所示:

可以看到,这里显示创建表的名称就是Bloges123。最后更新数据库,更新完成以后查看数据库生成的表名:

可以看到:数据库里面最终生成的表名就是配置的实体属性的命名。如果我们不想使用自动生成的表名,那该怎么办呢?这时候就需要做表名映射了,在代码里面设置最后生成的数据库表名。

如果要做映射,需要在数据上下文类中重写父类的OnModelCreating方法,里面有一个ToTable()的方法,里面的参数就是你想生成的表名,如下图所示:

修改后的数据上下文类代码如下:

using EFCore.Model;
using Microsoft.EntityFrameworkCore;

namespace EFCore.Data
{
    /// <summary>
    /// 数据上下文
    /// </summary>
    public class EFDbContext : DbContext
    {
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UsesqlServer("Data Source=.;Initial Catalog=EFTest;User ID=sa;PassWord=123456;");
        }

        public DbSet<Blog> Blogs { get; set; }

        /// <summary>
        /// 重写OnModelCreating方法,配置映射
        /// </summary>
        /// <param name="modelBuilder"></param>
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            // 配置表名映射
            modelBuilder.Entity<Blog>().ToTable("Blog");
            base.OnModelCreating(modelBuilder);
        }

    }
}

这样设置完成以后,我们在次使用数据迁移的方式来生成数据库,看看最终结果。添加迁移以后生成的迁移记录类:

可以看到:迁移记录类里面显示生成的表名是我们自己配置的表名,然后更新数据库,查看数据库表名:

这样就完成了表名映射,最终生成的就是我们自己配置的表名。

注意:设置表名的时候有一个限制:表名最大长度限制为128。

我们修改代码,设置的表名长度超过128看看效果:

var tableName = string.Join("", Enumerable.Repeat("t", 250).ToArray());
modelBuilder.Entity<Blog>().ToTable(tableName);

使用迁移的方式生成数据库查看效果:

可以看到,在更新数据库的时候报错了,提示超过了最大长度。

到此这篇关于Entity Framework Core表名映射的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: EntityFrameworkCore表名映射

本文链接: https://www.lsjlt.com/news/143881.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • EntityFrameworkCore表名映射
    表名映射 我们知道:如果是在默认情况下,使用EFCore Code First的方式生成的表名跟数据上下文类中定义的实体属性的名称是一致的,例如: public DbSet<B...
    99+
    2022-11-13
  • EntityFrameworkCore更新时间映射
    时间字段 在真实的开发中,为了跟踪数据的变化,一般会在数据表里面有CreatedTime和UpdatedTime两列。CreatedTime表示创建时间,新增一条数据的时候,会更新C...
    99+
    2022-11-13
  • Entity Framework Core如何实现表名映射
    小编给大家分享一下Entity Framework Core如何实现表名映射,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!表名映射我们知道:如果是在默认情况下,使用EFCore Code First的方...
    99+
    2023-06-29
  • 域名如何映射端口
    域名映射端口的方法:借助第三方软件工具进行端口映射。点击“内网映射”,再点击“添加映射”,弹出端口映射设置框。进行端口映射配置,填写相关信息。记得选择外网端口为“HTTP80端口”。点击确定即可。...
    99+
    2022-10-22
  • 设置主机名和hosts映射
       学习b站韩顺平老师的Linux课程时所做的笔记:【小白入门 通俗易懂】2021韩顺平 一周学会Linux_哔哩哔哩_bilibili 概述:前面我们在ping或连接一个Linux系统的时候是通过ip来做的,但是ip不好记忆,所以为了...
    99+
    2023-10-26
    linux 服务器 运维
  • ubuntu如何配置域名映射
    ubuntu配置域名映射:在ubuntu下找到hosts文件,一般在/etc下。在hosts文件中添加域名映射。保存并关闭即可。...
    99+
    2022-10-15
  • Mybatis/Mybatis-Plus驼峰式命名映射
    目录 一、mybatis驼峰式命名 二、mybatisPlus默认开启驼峰命名映射 一、mybatis驼峰式命名 方法一: 使用前提:数据库表设计按照规范“字段名中各单词使用下划线"_"划分”; 使用好处:省去mapper.xml文件中...
    99+
    2023-09-02
    mybatis java mysql
  • Python 列表映射后的平均值
    目录1、average_by2、lambda表达式3、map函数4、其他类似函数4.1 max_by4.2 min_by4.3 sum_by 本篇阅读的代码片段来自于30-secon...
    99+
    2022-11-12
  • Linux主机名映射的方法是什么
    这篇文章主要讲解了“Linux主机名映射的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux主机名映射的方法是什么”吧!1. 查看主机名: hostname&nbs...
    99+
    2023-06-28
  • 阿里云服务器如何映射域名
    本文将介绍如何在阿里云服务器上进行域名映射,帮助用户实现网站的访问和管理。 详细说明:注册域名首先,在进行域名映射之前,需要先注册一个域名。可以前往阿里云官网进行域名注册,选择合适的后缀并填写相关信息完成注册。注册完成后,用户将会获得一个域...
    99+
    2023-12-28
    阿里 服务器 域名
  • C++list-map链表与映射表的简单使用
    目录list 链表map 映射表list 链表 链表是由节点之间通过指针连接而成的链式结构存储结构体,对于链表,C++标准库中已经提供了封装好的链表了。 require: #incl...
    99+
    2023-05-19
    C++ list 链表 C++ map映射表
  • 浅谈hibernate中多表映射关系配置
    1.one-to-many 一对多关系的映射配置(在一的一方实体映射文件中配置)<!-- cascade属性:级联操作属性 save-update: 级联保存,保存客户时,级联保存客户关联的联系人 delete:级联...
    99+
    2023-05-31
    hibernate 多表 映射关系
  • Python VTK映射三维模型表面距离
    数据准备: 需要准备两个stl文件、Python需要安装vtk库 步骤一:数据读取 首先通过vtk.vtkSTLReader() 定义stl文件读取接口...
    99+
    2022-11-10
  • arp映射表删除了会有哪些影响
    ARP映射表存储了网络设备的IP地址和对应的MAC地址,用于在数据包转发时进行地址解析。如果删除ARP映射表,会导致以下影响:1. ...
    99+
    2023-06-12
    arp映射表
  • java如何调用字符映射表的方法
    在Java中,可以使用`HashMap`来实现字符映射表,并通过调用`get`方法来获取对应字符的映射值。以下是一个示例代码:```...
    99+
    2023-09-25
    java
  • mybatis 解决从列名到属性名的自动映射失败问题
    问题背景 从数据库中取出数据映射到实体类时,实体类中只有部分属性映射成功,其余属性值皆为null。 问题描述 如下图AreaDao.xml文件中描述了queryArea()方法从数据...
    99+
    2022-11-12
  • 如何进行ARM64 Linux内核页表的块映射
    这期内容当中小编将会给大家带来有关如何进行ARM64 Linux内核页表的块映射,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。内核文档Documentation/arm64/memory.rst描述了AR...
    99+
    2023-06-15
  • IDEA自动把数据库表映射为实体类
    1 打开视图菜单,选择工具窗口,选择数据库 2 找到打开的窗口,选择,+,选择数据源,选择MySQL(这里以MySQL为例)   3 填写相应的信息,最后点击测试,测试通过后点击应用,确定  4 还是回到刚刚的窗口,点击你的数据库名,点...
    99+
    2023-09-15
    数据库 intellij-idea mysql
  • Python如何实现列表映射后的平均值
    这篇文章主要介绍了Python如何实现列表映射后的平均值,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、average_bydef average_by(lst,...
    99+
    2023-06-25
  • 服务器绑定的域名怎么映射到内网上
    将服务器域名映射到内网的方法:1.在计算机系统盘中打开hosts文件;2.在文件中根据原有的格式添加服务器绑定的域名,保存即可;将服务器域名映射到内网的方法首先,在计算机中系统盘中,查找到hosts文件,hosts文件位置:C:\windo...
    99+
    2022-10-11
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作