广告
返回顶部
首页 > 资讯 > 精选 >如何使用Entity Framework Core对Web项目生成数据库表
  • 471
分享到

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

2023-06-29 15:06:13 471人浏览 独家记忆
摘要

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

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

一、引言

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

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

项目结构:

  • 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里面安装:

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

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

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

安装完上面的两个包以后,在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

如下图所示:

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

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

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

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

Update-Database

如下图所示:

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

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

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

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

看完了这篇文章,相信你对“如何使用Entity Framework Core对Web项目生成数据库表”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: 如何使用Entity Framework Core对Web项目生成数据库表

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

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

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

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

下载Word文档
猜你喜欢
  • 如何使用Entity Framework Core对Web项目生成数据库表
    小编给大家分享一下如何使用Entity Framework Core对Web项目生成数据库表,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、引言这篇文章中我们讲解如何在Web项目中使用EntityFr...
    99+
    2023-06-29
  • Entity Framework Core如何使用控制台程序生成数据库表
    这篇文章主要介绍了Entity Framework Core如何使用控制台程序生成数据库表,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、引言我们使用C...
    99+
    2023-06-29
  • EntityFrameworkCore对Web项目生成数据库表
    一、引言 这篇文章中我们讲解如何在Web项目中使用EntityFrameworkCore,并生成数据库表,这里以ASP.NET Core WebApi为例讲解。还是采用分层的结构。创...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作