iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >EntityFrameworkCore对Web项目生成数据库表
  • 902
分享到

EntityFrameworkCore对Web项目生成数据库表

2024-04-02 19:04:59 902人浏览 泡泡鱼
摘要

一、引言 这篇文章中我们讲解如何在WEB项目中使用EntityFrameworkCore,并生成数据库表,这里以ASP.net core webapi为例讲解。还是采用分层的结构。创

一、引言

这篇文章中我们讲解如何在WEB项目中使用EntityFrameworkCore,并生成数据库表,这里以ASP.net core webapi为例讲解。还是采用分层的结构。创建后的项目整体结构如下图所示:

项目结构:

  • EFCoreWeb.api:ASP.net core WebApi项目,用来提供Web功能,在项目中会引用EFCoreWeb.Data。
  • EFCoreWeb.Data:类库项目,基于.Net Core的类库。存放的是与EFCore相关的操作。
  • EFCoreWeb.Model:类库项目,基于.net Core的类库。存放的是实体类。

1、添加实体类

我们在EFCoreWeb.Model类库项目里面添加Student实体类:

namespace EFCoreWeb.Model
{
    public class Student
    {
        public int Id { get; set; }

        public string Name { get; set; }

        public int Age { get; set; }

        public int Gender { get; set; }
    }
}

2、添加Mircosoft.EntityFrameworkCore

因为要使用Student实体类,首先要在EFCoreWeb.Data项目里面添加对EFCoreWeb.Model的引用。

然后在EFCoreWeb.Data类库项目里面添加Mircosoft.EntityFrameworkCore包,直接在NuGet里面安装:

由于我们使用的是sqlServer数据库,所以我们还要安装Microsoft.EntityFrameworkCore.sqlServer包,同样也是直接在NuGet里面安装:

安装完上面的两个包以后,在EFCoreWeb.Data类库项目里面添加Mapping文件夹,用来存放Fluent API的配置文件,Student类的配置伙伴类代码如下:

using EFCoreWeb.Model;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;

namespace EFCoreWeb.Data.Mapping
{
    /// <summary>
    /// Student配置伙伴类,继承自IEntityTypeConfiguration<T>泛型接口
    /// </summary>
    public class StudentMap : IEntityTypeConfiguration<Student>
    {
        /// <summary>
        /// 实现接口里面的Configure方法,用来配置生成数据库表结构
        /// </summary>
        /// <param name="builder"></param>
        public void Configure(EntityTypeBuilder<Student> builder)
        {
            // 设置主键
            builder.HasKey(p => p.Id);
            // 设置生成的表名
            builder.ToTable("T_Student");
            // 设置Name列的最大长度
            builder.Property("Name").HasMaxLength(64);
            // 设置Name列是必须的
            builder.Property("Name").IsRequired();
        }
    }
}

添加一个Context文件夹,然后添加数据上下文类,继承自DbContext:

using EFCoreWeb.Model;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;

namespace EFCoreWeb.Data.Mapping
{
    /// <summary>
    /// Student配置伙伴类,继承自IEntityTypeConfiguration<T>泛型接口
    /// </summary>
    public class StudentMap : IEntityTypeConfiguration<Student>
    {
        /// <summary>
        /// 实现接口里面的Configure方法,用来配置生成数据库表结构
        /// </summary>
        /// <param name="builder"></param>
        public void Configure(EntityTypeBuilder<Student> builder)
        {
            // 设置主键
            builder.HasKey(p => p.Id);
            // 设置生成的表名
            builder.ToTable("T_Student");
            // 设置Name列的最大长度
            builder.Property("Name").HasMaxLength(64);
            // 设置Name列是必须的
            builder.Property("Name").IsRequired();
        }
    }
}

二、生成数据库表

这里我们使用程序包管理器控制台迁移的方式来生成数据库表。需要在EFCoreWeb.Data项目里面安装Microsoft.EntityFrameworkCore.Tools包。在EFCoreWeb.API项目里面安装Microsoft.EntityFrameworkCore.Tools、Microsoft.EntityFrameworkCore两个包。EFCoreWeb.API项目添加对EFCoreWeb.Data项目的引用。

首先在EFCoreWeb.API项目的appsettings.JSON文件里面添加数据库连接字符串

{
  "Logging": {
    "LogLevel": {
      "Default": "InfORMation",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "ConnectionString": {
    "DbConnection": "Data Source=.;Initial Catalog=EFTestDb;User ID=sa;PassWord=123456;"
  }
}

在Startup类的ConfigureServices方法里面添加数据库连接:

using EFCoreWeb.Data.Context;
using Microsoft.Aspnetcore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

namespace EFCoreWeb.API
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            #region 数据库连接
            services.ADDDbContext<EFCoreDbContext>(options => {
                // options.UseSqlServer(Configuration.GetConnectionString("DbConnection"));
                options.UseSqlServer(Configuration.GetSection("ConnectionString").GetSection("DbConnection").Value);
            });
            #endregion
            services.AddControllers();
        }

        // This method gets called by the runtime. Use this method to configure the Http request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }
    }
}

上面步骤配置完成以后,在程序包管理器控制台里面开始迁移,使用下面的命令添加迁移:

Add-Migration Init

如下图所示:

执行完命令以后就会生成迁移文件:

添加迁移之后,执行下面的命令更新数据库:

Update-Database

如下图所示:

执行完以后去查看数据库:

可以看到,表里面Name列的长度是根据代码里面设置的长度生成的,而且不为null,种子数据也插入进去了。

到此这篇关于Entity Framework Core对Web项目生成数据库表的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: EntityFrameworkCore对Web项目生成数据库表

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

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

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

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

下载Word文档
猜你喜欢
  • EntityFrameworkCore对Web项目生成数据库表
    一、引言 这篇文章中我们讲解如何在Web项目中使用EntityFrameworkCore,并生成数据库表,这里以ASP.NET Core WebApi为例讲解。还是采用分层的结构。创...
    99+
    2024-04-02
  • 如何使用Entity Framework Core对Web项目生成数据库表
    小编给大家分享一下如何使用Entity Framework Core对Web项目生成数据库表,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、引言这篇文章中我们讲解如何在Web项目中使用EntityFr...
    99+
    2023-06-29
  • EntityFrameworkCore使用控制台程序生成数据库表
    目录一、引言1、添加实体类2、添加Mircosoft.EntityFrameworkCore二、生成数据库表1、代码生成2、程序包管理器控制台迁移1、安装Microsoft.Enti...
    99+
    2024-04-02
  • Entity Framework Core生成数据库表
    目录一、引言二、具体示例1、代码生成2、程序包管理器控制台迁移1、安装Microsoft.EntityFrameworkCore.Tools包2、添加迁移命令3、更新数据库3、命令行...
    99+
    2024-04-02
  • 如何在PHP项目中实现数据统计和报表生成?
    在当今信息化时代,数据统计和报表生成对于企业和组织来说已经变得至关重要。数据统计可以帮助企业了解业务绩效、产品销售情况、市场趋势等重要数据,而报表生成可以将这些数据以直观的形式展现给管理层和决策者。在PHP项目中实现数据统计和报表生成有多种...
    99+
    2023-11-02
    数据统计 PHP项目 报表生成
  • 如何快速生成一个全栈Web 项目
    本篇内容主要讲解“如何快速生成一个全栈Web 项目”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何快速生成一个全栈Web 项目”吧!Goxygen 致力于节省...
    99+
    2024-04-02
  • 怎么在Python项目中生成一个batch数据
    这篇文章将为大家详细讲解有关怎么在Python项目中生成一个batch数据,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。产生batch数据输入data中每个样本可以有多个特征,和一个标签,最...
    99+
    2023-06-08
  • Springboot如何根据实体类生成数据库表
    目录Springboot 实体类生成数据库表第一步:添加springboot-data-jpa和数据库的依赖关系第二步:编写yml文件的配置第三步:实体类中使用的注解第四步:启动项目...
    99+
    2024-04-02
  • 利用MySQL实现数据分析与报表生成的项目经验探讨
    随着数据量的爆炸式增长和企业对数据分析的需求迅速增加,如何高效地从海量数据中提取有价值的信息成为了各行各业所面临的重要问题。在这个背景下,利用MySQL实现数据分析与报表生成的项目经验逐渐引起了人们的关注。本文将探讨这一项目经验,旨在为读者...
    99+
    2023-11-02
    数据分析 MySQL 报表生成
  • golang 生成对应的数据表struct定义操作
    在开发过程中,常常需要将数据库表对应到golang的一个struct,特别是使用一些ORM工具,sqlx库等,我是个懒人,即使数据表的字段不多,我也懒得去一个个对应的敲入代码,更别提...
    99+
    2024-04-02
  • 数据库怎么生成xml
    这篇文章主要介绍“数据库怎么生成xml”,在日常操作中,相信很多人在数据库怎么生成xml问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”数据库怎么生成xml”的疑惑有所帮助!接...
    99+
    2024-04-02
  • .NET如何生成数据库
    这篇文章给大家分享的是有关.NET如何生成数据库的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。开篇语本文主要是回顾下从项目创建到生成数据到数据库(代码优先)的全部过程。采用EFCore作为ORM框架。本次示例环境...
    99+
    2023-06-15
  • 如何在Web项目中连接阿里云数据库RDS?
    随着互联网的发展,数据量的不断增大,传统的数据库已不能满足大规模数据的存储和处理需求。因此,云数据库应运而生,它能够提供弹性扩展、高可用性、安全性等优势。本文将详细介绍如何在Web项目中连接阿里云数据库RDS。 步骤一:创建阿里云数据库RD...
    99+
    2023-10-29
    阿里 数据库 项目
  • django如何根据现有数据库表生成model详解
    目录一,在setting.py中配置好连接数据库的参数二,打开cmd或pycharm的Terminal输入命令三,managed = False 删除或改为 managed = Tr...
    99+
    2024-04-02
  • Mybatis如何自动生成数据库表的实体类
    第一步引入jar 第二步,配置文本文件 # 数据库驱动jar 路径 本地创库的包 drive.class.path=C:/Users/Administrator/.m2/re...
    99+
    2024-04-02
  • Python-GUI wxPython之自动化数据生成器的项目实战
    目录学习目标界面原型设计使用技术:学习目标 根据原型设计编译自动化数据生成器,熟悉wxPython的基本用法。 界面原型设计 界面原型设计分析 输入参数: 最大长度最小长度组成规则...
    99+
    2024-04-02
  • 阿里云web项目连接不了数据库怎么回事
    阿里云Web项目无法连接数据库的原因及解决方法 阿里云Web项目是目前非常流行的一种开发方式,它可以帮助开发者快速构建高质量的Web应用程序。然而,在使用阿里云Web项目时,有时会遇到连接数据库的问题。本文将介绍阿里云Web项目连接数据库时...
    99+
    2023-12-26
    阿里 怎么回事 数据库
  • 优酷项目之 ORM(数据库对象关系映射)
    前言:   我们在操作数据库时候一般都是通过sql代码来操作mysql数据库中相关数据,这就需要懂得sql语句,那么怎么样才能在不懂sql语句的情况下通过我们所学的python代码来实现对mysql数据库的操作?   当然有这种神奇的操作...
    99+
    2023-01-31
    对象 关系 数据库
  • 用数据库生成的ID会生成什么问题
    这篇文章主要讲解了“用数据库生成的ID会生成什么问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“用数据库生成的ID会生成什么问题”吧!用数据库生成应用ID...
    99+
    2024-04-02
  • sqlserver表怎么生成数据字典
    在 SQL Server 中生成数据字典可以通过以下步骤实现: 查询表结构信息:使用系统视图或者函数查询表的结构信息,例如查询表名...
    99+
    2024-04-09
    SQLServer
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作