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

发布时间 2023-03-22 19:08:02作者: DotNet菜园
学习ASP.NET Core Blazor编程系列一——综述
学习ASP.NET Core Blazor编程系列八——数据校验
学习ASP.NET Core Blazor编程系列十——路由(上)
学习ASP.NET Core Blazor编程系列十三——路由(完)
学习ASP.NET Core Blazor编程系列十五——查询
 学习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 包管理器 > 程序包管理器控制台”。

 

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

       Add-Migration AddFileDescribeTable

       Update-Database

 

图1

图2

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