学习ASP.NET Core Blazor编程系列十八——文件上传(中)

  • 学习ASP.NET Core Blazor编程系列十八——文件上传(中)已关闭评论
  • 21 次浏览
  • A+
所属分类:.NET技术
摘要

            上篇学习ASP.NET Core Blazor编程系列十七——文件上传(上) 文章我们学习了如何将文件上传至服务器,但是我们并没有将文件的一些信息保存下来,无法进行查询,无法得知我们上传了一些什么文件。本篇文章演示如何将上传文件的一些基本信息保存到数据库,从而可以对上传文件进行简单管理。

 

           上篇学习ASP.NET Core Blazor编程系列十七——文件上传(上)文章我们学习了如何将文件上传至服务器,但是我们并没有将文件的一些信息保存下来,无法进行查询,无法得知我们上传了一些什么文件。本篇文章演示如何将上传文件的一些基本信息保存到数据库,从而可以对上传文件进行简单管理。

三、添加FileDescribe类

            在Visual Studio 2022的解决方案资源管理器中,鼠标左键选中“Models”文件夹,右键单击,在弹出菜单中选择“添加—>类”。 将类命名为“FileDescribe”,并添加以下属性,代码如下:

 

using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Xml.Linq;   namespace BlazorAppDemo.Models {     public class FileDescribe      {         [DatabaseGenerated(DatabaseGeneratedOption.Identity)]         [Required]          [Key]         public int ID { get; set; }             [Display(Name = "文件名称")]          [Required]         [StringLength(100)]           public string Name { get; set; }         [Display(Name = "上传后文件名称")]         [StringLength(100)]         public string NewName { get; set; }              [Display(Name = "文件大小(bytes)")]         [DisplayFormat(DataFormatString = "{0:N1}")]         public long FileSize { get; set; }            [Display(Name = "文件描述")]         public string PubliceDescribe { get; set; }           [Display(Name = "文件路径")]         [StringLength(300)]         public string FullName { get; set; }          [Display(Name = "上传时间(UTC)")]         [DisplayFormat(DataFormatString = "{0:F}")]         [Required]         public DateTime UploadDateTime { get; set; }       } }

 

  此类使用 Display 和 DisplayFormat 特性,有前端显示时,这些特性会生成友好的标题和格式。

四、修改BookContext

       在Visual Studio 2022的解决方案资源管理器中找到BookContext (Models/BookContext.cs) 文件,使用鼠标左键双击在文本编辑器中打开,并修改代码如下:

using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore;     namespace BlazorAppDemo.Models {     public class BookContext:DbContext     {         public BookContext(DbContextOptions<BookContext> options)                 : base(options)         {                    }            public DbSet<Book> Book { get; set; }         public DbSet<FileDescribe> FileDescribe { get; set; }        }  }   

 

五、将 “FileDescribe” 类生成数据库表

   1.在Visual Studio 2022中打开程序包管理器控制台 (PMC),“菜单栏>工具> NuGet 包管理器 > 程序包管理器控制台”。 学习ASP.NET Core Blazor编程系列十八——文件上传(中)

 

  2.在 PMC 中分别执行以下两条命令。这两条命令将实现向数据库中添加 FileDescribe表,执行结果发下图1、与图2。

       Add-Migration AddFileDescribeTable

       Update-Database

 学习ASP.NET Core Blazor编程系列十八——文件上传(中)

图1

学习ASP.NET Core Blazor编程系列十八——文件上传(中)

图2

 3.在执行以上指令之后,会在数据库中添加FileDescribe表,结果如下图。

 学习ASP.NET Core Blazor编程系列十八——文件上传(中)