千家信息网

如何使用Entity Framework Core对Web项目生成数据库表

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编给大家分享一下如何使用Entity Framework Core对Web项目生成数据库表,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、引言这篇文章中我们讲解如何在Web项目中
千家信息网最后更新 2026年11月03日如何使用Entity Framework Core对Web项目生成数据库表

小编给大家分享一下如何使用Entity Framework Core对Web项目生成数据库表,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

一、引言

这篇文章中我们讲解如何在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{    ///     /// Student配置伙伴类,继承自IEntityTypeConfiguration泛型接口    ///     public class StudentMap : IEntityTypeConfiguration    {        ///         /// 实现接口里面的Configure方法,用来配置生成数据库表结构        ///         ///         public void Configure(EntityTypeBuilder 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{    ///     /// Student配置伙伴类,继承自IEntityTypeConfiguration泛型接口    ///     public class StudentMap : IEntityTypeConfiguration    {        ///         /// 实现接口里面的Configure方法,用来配置生成数据库表结构        ///         ///         public void Configure(EntityTypeBuilder 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(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项目生成数据库表"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

项目 数据 数据库 生成 配置 文件 结构 面的 实体 接口 长度 伙伴 命令 方法 篇文章 最大 两个 代码 控制台 文件夹 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中关村互联网科技集团 深圳互联网络科技有限公司 互联网科技作文 亿策互联网科技 宜安科技 互联网金融 深圳天众互联网科技公司 互联网科技的未来发展 互联网科技大会 互联网金融监管科技 华夏互联网科技业 翼展科技 首家互联网医院 互联网科技的全部知识 工业互联网展湾科技股份有限公司 下一代互联网重大应用科技园 郑州欣桑互联网科技有限公司 珠海东科互联网科技有限公司 上海万顺科技互联网有限公司招聘 科技互联网专业工作会议发言稿 北京品多多互联网科技有限公司 六子台科技互联网展会 平安科技 互联网 互联网科技公司电话 互联网科技网站 北京三清互联网科技 茂名市互联网科技产业园 互联网大会黑科技排名 互联网科技和法律行业 工业互联网科技成果转化 上海同邻互联网科技有限公司规模 互联网科技平台产品运营
0