建设部评职称网站,查注册公司,建设官网流程,湖南住房城乡建设厅官方网站目录
建立默认带身份验证 Blazor 程序角色/组件/特性/过程逻辑DB 改 Sqlite将自定义字段添加到用户表脚手架拉取IDS文件,本地化资源freesql 生成实体类,freesql 管理ids数据表初始化 Roles,freesql 外键 导航属性完善 freesql 和 bb 特性
本节源码
https://github.com/…目录
建立默认带身份验证 Blazor 程序角色/组件/特性/过程逻辑DB 改 Sqlite将自定义字段添加到用户表脚手架拉取IDS文件,本地化资源freesql 生成实体类,freesql 管理ids数据表初始化 Roles,freesql 外键 导航属性完善 freesql 和 bb 特性
本节源码
https://github.com/densen2014/Blazor100/tree/Blazor-%E6%95%99%E7%A8%8B15-6/b16blazorIDS2
截图 安装 FreeSql.Generator 命令行代码生成器生成实体类
对于此工具的使用可参考 https://github.com/dotnetcore/FreeSql/wiki/DbFirst , 也可直接运行命令查看 FreeSql.Generator
安装 dotnet-tool 生成实体类
dotnet tool install -g FreeSql.Generator生成实体
项目右键添加 Model 目录右键选择在终端中打开输入命令
FreeSql.Generator -NameOptions 0,0,0,0 -NameSpace b16blazorIDS2.Models.ids -DB Sqlite,Data Source../ids.db; -Filter ViewStoreProcedure -FileName {name}.cs解释
-NameOptions 0,0,0,0 首字母大写, 首字母大写其他小写, 全部小写, 下划线转驼峰-DB “Sqlite,Data Source…/ids.db;” 数据库类型和连接字符串,本例数据库在上一级目录,所以是…/ids.db-Filter “ViewStoreProcedure” 不生成视图和存储过程 生成的实体 添加 BootstrapBlazor 组件库
相关步骤往日文章有写,不再赘述,只贴上关键部分.
引用Nuget包 PackageReference IncludeBootstrapBlazor Version7.* /PackageReference IncludeBootstrapBlazor.FontAwesome Version7.* /PackageReference IncludeDensen.Extensions.BootstrapBlazor Version7.* /PackageReference IncludeDensen.FreeSql.Extensions.BootstrapBlazor Version7.* /PackageReference IncludeFreeSql.Provider.Sqlite Version3.2.685 /PackageReference IncludeMagicodes.IE.Core Version2.7.1 /PackageReference IncludeMagicodes.IE.Excel Version2.7.1 /PackageReference IncludeMagicodes.IE.Html Version2.7.1 /PackageReference IncludeMagicodes.IE.Pdf Version2.7.1 /PackageReference IncludeMagicodes.IE.Word Version2.7.1 /PackageReference IncludeHtmlToOpenXml.dll Version2.3.0 /PackageReference IncludeHaukcode.WkHtmlToPdfDotNet Version1.5.86 /App.razor
BootstrapBlazorRootCascadingAuthenticationState.../CascadingAuthenticationState
/BootstrapBlazorRoot_Imports.razor
添加的代码
using BootstrapBlazor.Components
using AME.Services
using Blazor100.Service
using System.Diagnostics.CodeAnalysisPages_Host.cshtml !-- 删掉这行 link relstylesheet hrefcss/bootstrap/bootstrap.min.css / !--link hrefcss/site.css relstylesheet /!-- 添加下面两行 !--link href_content/BootstrapBlazor.FontAwesome/css/font-awesome.min.css relstylesheetlink href_content/BootstrapBlazor/css/bootstrap.blazor.bundle.min.css relstylesheet!-- 添加上面两行 !--...!-- script src_framework/blazor.server.js/script 之前增加这行 !--script src_content/BootstrapBlazor/js/bootstrap.blazor.bundle.min.js/script
添加导入导出服务
新建 Service 文件夹, 新建 ImportExportsService.cs 文件
using BootstrapBlazor.Components;
using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Excel;
using Magicodes.ExporterAndImporter.Html;
using Magicodes.ExporterAndImporter.Pdf;
using Magicodes.ExporterAndImporter.Word;namespace Blazor100.Service
{/// summary/// 通用导入导出服务类/// /summarypublic class ImportExportsService{public enum ExportType{Excel,Pdf,Word,Html}public async Taskstring ExportT(string filePath, ListT? items null, ExportType exportType ExportType.Excel) where T : class, new(){switch (exportType){case ExportType.Pdf:var exporterPdf new PdfExporter();items items ?? new ListT();var resultPdf await exporterPdf.ExportListByTemplate(filePath .pdf, items);return resultPdf.FileName;case ExportType.Word:var exporterWord new WordExporter();items items ?? new ListT();var resultWord await exporterWord.ExportListByTemplate(filePath .docx, items);return resultWord.FileName;case ExportType.Html:var exporterHtml new HtmlExporter();items items ?? new ListT();var resultHtml await exporterHtml.ExportListByTemplate(filePath .html, items);return resultHtml.FileName;default:IExporter exporter new ExcelExporter();items items ?? new ListT();var result await exporter.Export(filePath .xlsx, items);return result.FileName;}}public async Task(IEnumerableT? items,string error) ImportFormExcelT(string filePath) where T : class, new(){IExcelImporter Importer new ExcelImporter();var import await Importer.ImportT(filePath);if (import.Data null ) {return (null, import.Exception.Message);}return (import.Data!.ToList(),); }}
}Program.cs
顶上添加
using Densen.DataAcces.FreeSql;
using Blazor100.Service;在 builder.Services.AddSingletonWeatherForecastService(); 下面添加
builder.Services.AddFreeSql(option
{option.UseConnectionString(FreeSql.DataType.Sqlite, Data Sourceids.db;) //也可以写到配置文件中
#if DEBUG//开发环境:自动同步实体.UseAutoSyncStructure(true).UseNoneCommandParameter(true)//调试sql语句输出.UseMonitorCommand(cmd System.Console.WriteLine(cmd.CommandText))
#endif;
});
builder.Services.AddSingleton(typeof(FreeSqlDataService));builder.Services.AddTransientImportExportsService();
builder.Services.AddDensenExtensions();
builder.Services.ConfigureJsonLocalizationOptions(op
{// 忽略文化信息丢失日志op.IgnoreLocalizerMissing true;
});管理页面
Pages 添加组件 DataAdmin.razor
page /DataAdmin
using b16blazorIDS2.Models.ids
using static Blazor100.Service.ImportExportsServicePageTitle管理/PageTitleTab IsLazyLoadTabItemtrueTabItem TextUsersTable TItemAspNetUsersIsPaginationtrueIsStripedtrueIsBorderedtrueAutoGenerateColumnstrueShowSearchtrueShowToolbartrueShowExtendButtonstrueDoubleClickToEdittrueShowColumnListtrueShowCardViewtrueTableToolbarTemplateTableToolbarButton TItemAspNetUsers ColorColor.Primary Text自由编辑 OnClickIsExcelToggle //TableToolbarTemplate/Table/TabItemTabItem TextRolesTable TItemAspNetRolesIsPaginationtrueIsStripedtrueIsBorderedtrueAutoGenerateColumnstrueShowSearchtrueShowToolbartrueShowExtendButtonstrueDoubleClickToEdittrueShowColumnListtrueShowCardViewtrueTableToolbarTemplateTableToolbarButton TItemAspNetRoles ColorColor.Primary Text自由编辑 OnClickIsExcelToggle //TableToolbarTemplate/Table/TabItemTabItem TextLoginsTable TItemAspNetUserLoginsIsPaginationtrueIsStripedtrueIsBorderedtrueAutoGenerateColumnstrueShowSearchtrueShowToolbartrueShowExtendButtonstrueDoubleClickToEdittrueShowColumnListtrueShowCardViewtrueTableToolbarTemplateTableToolbarButton TItemAspNetUserLogins ColorColor.Primary Text自由编辑 OnClickIsExcelToggle //TableToolbarTemplate/Table/TabItem/Tab组件 DataAdmin.razor 后置代码 DataAdmin.razor.cs
using Blazor100.Service;
using BootstrapBlazor.Components;
using Microsoft.AspNetCore.Components;
using System.Diagnostics.CodeAnalysis;namespace b16blazorIDS2.Pages
{public partial class DataAdmin{[Inject]IWebHostEnvironment? HostEnvironment { get; set; }[Inject][NotNull]NavigationManager? NavigationManager { get; set; }[Inject][NotNull]ImportExportsService? ImportExportsService { get; set; }[Inject][NotNull]ToastService? ToastService { get; set; } // 由于使用了FreeSql ORM 数据服务,可以直接取对象[Inject][NotNull]IFreeSql? fsql { get; set; }[Inject] ToastService? toastService { get; set; }[Inject] SwalService? SwalService { get; set; }public bool IsExcel { get; set; }public bool DoubleClickToEdit { get; set; } true;protected string UploadPath ;protected string? uploadstatus;long maxFileSize 1024 * 1024 * 15;string? tempfilename;private Task IsExcelToggle(){IsExcel !IsExcel;DoubleClickToEdit !IsExcel;StateHasChanged();return Task.CompletedTask;}}
}运行截图 本节源码
https://github.com/densen2014/Blazor100/tree/Blazor-%E6%95%99%E7%A8%8B15-6/b16blazorIDS2
源代码
https://github.com/densen2014/Blazor100
https://gitee.com/densen2014/Blazor100 (镜像/非最新版)—
关联项目
FreeSql QQ群4336577
BA Blazor QQ群795206915
Maui Blazor 中文社区 QQ群645660665
知识共享许可协议
本作品采用 知识共享署名-非商 业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布但务必保留文章署名AlexChow不得用于商业目的基于本文修改后的作品务必以相同的许可发布。如有任何疑问请与我联系 。
转载声明
本文来自博客园作者周创琳 AlexChow转载请注明原文链接.
AlexChow
今日头条 | 博客园 | 知乎 | Gitee | GitHub
文章转载自: http://www.morning.rrjzp.cn.gov.cn.rrjzp.cn http://www.morning.rmxwm.cn.gov.cn.rmxwm.cn http://www.morning.cnvlog.cn.gov.cn.cnvlog.cn http://www.morning.nfmlt.cn.gov.cn.nfmlt.cn http://www.morning.tntqr.cn.gov.cn.tntqr.cn http://www.morning.pngph.cn.gov.cn.pngph.cn http://www.morning.qbjrf.cn.gov.cn.qbjrf.cn http://www.morning.xcfmh.cn.gov.cn.xcfmh.cn http://www.morning.tldhq.cn.gov.cn.tldhq.cn http://www.morning.bfgbz.cn.gov.cn.bfgbz.cn http://www.morning.trtdg.cn.gov.cn.trtdg.cn http://www.morning.kmwsz.cn.gov.cn.kmwsz.cn http://www.morning.kphsp.cn.gov.cn.kphsp.cn http://www.morning.fgxws.cn.gov.cn.fgxws.cn http://www.morning.ntdzjx.com.gov.cn.ntdzjx.com http://www.morning.xsetx.com.gov.cn.xsetx.com http://www.morning.kryxk.cn.gov.cn.kryxk.cn http://www.morning.wflsk.cn.gov.cn.wflsk.cn http://www.morning.lcqrf.cn.gov.cn.lcqrf.cn http://www.morning.bpknt.cn.gov.cn.bpknt.cn http://www.morning.zhqfn.cn.gov.cn.zhqfn.cn http://www.morning.qdlr.cn.gov.cn.qdlr.cn http://www.morning.qnbsx.cn.gov.cn.qnbsx.cn http://www.morning.qmnjn.cn.gov.cn.qmnjn.cn http://www.morning.hxbjt.cn.gov.cn.hxbjt.cn http://www.morning.demoux.com.gov.cn.demoux.com http://www.morning.fgrcd.cn.gov.cn.fgrcd.cn http://www.morning.btns.cn.gov.cn.btns.cn http://www.morning.hnhsym.cn.gov.cn.hnhsym.cn http://www.morning.frfnb.cn.gov.cn.frfnb.cn http://www.morning.xqqcq.cn.gov.cn.xqqcq.cn http://www.morning.zmwd.cn.gov.cn.zmwd.cn http://www.morning.xgxbr.cn.gov.cn.xgxbr.cn http://www.morning.ztcwp.cn.gov.cn.ztcwp.cn http://www.morning.rmfwh.cn.gov.cn.rmfwh.cn http://www.morning.hbkkc.cn.gov.cn.hbkkc.cn http://www.morning.frmmp.cn.gov.cn.frmmp.cn http://www.morning.jlschmy.com.gov.cn.jlschmy.com http://www.morning.mplb.cn.gov.cn.mplb.cn http://www.morning.pjrgb.cn.gov.cn.pjrgb.cn http://www.morning.rwfj.cn.gov.cn.rwfj.cn http://www.morning.nmfml.cn.gov.cn.nmfml.cn http://www.morning.gprzp.cn.gov.cn.gprzp.cn http://www.morning.mfbzr.cn.gov.cn.mfbzr.cn http://www.morning.hqgkx.cn.gov.cn.hqgkx.cn http://www.morning.fglxh.cn.gov.cn.fglxh.cn http://www.morning.fwkjp.cn.gov.cn.fwkjp.cn http://www.morning.jwmws.cn.gov.cn.jwmws.cn http://www.morning.dwhnb.cn.gov.cn.dwhnb.cn http://www.morning.hwlk.cn.gov.cn.hwlk.cn http://www.morning.wrwcf.cn.gov.cn.wrwcf.cn http://www.morning.qgxnw.cn.gov.cn.qgxnw.cn http://www.morning.qgfy.cn.gov.cn.qgfy.cn http://www.morning.ltkzb.cn.gov.cn.ltkzb.cn http://www.morning.ksgjy.cn.gov.cn.ksgjy.cn http://www.morning.qsmmq.cn.gov.cn.qsmmq.cn http://www.morning.jfnbh.cn.gov.cn.jfnbh.cn http://www.morning.hgscb.cn.gov.cn.hgscb.cn http://www.morning.mksny.cn.gov.cn.mksny.cn http://www.morning.kztpn.cn.gov.cn.kztpn.cn http://www.morning.plqqn.cn.gov.cn.plqqn.cn http://www.morning.cgstn.cn.gov.cn.cgstn.cn http://www.morning.ncrk.cn.gov.cn.ncrk.cn http://www.morning.rklgm.cn.gov.cn.rklgm.cn http://www.morning.lmdfj.cn.gov.cn.lmdfj.cn http://www.morning.gwtgt.cn.gov.cn.gwtgt.cn http://www.morning.mhlsx.cn.gov.cn.mhlsx.cn http://www.morning.nqrlz.cn.gov.cn.nqrlz.cn http://www.morning.fmqng.cn.gov.cn.fmqng.cn http://www.morning.sxjmz.cn.gov.cn.sxjmz.cn http://www.morning.tbzcl.cn.gov.cn.tbzcl.cn http://www.morning.mmkrd.cn.gov.cn.mmkrd.cn http://www.morning.nlbw.cn.gov.cn.nlbw.cn http://www.morning.qrpdk.cn.gov.cn.qrpdk.cn http://www.morning.ggrzk.cn.gov.cn.ggrzk.cn http://www.morning.hmxrs.cn.gov.cn.hmxrs.cn http://www.morning.jtjmz.cn.gov.cn.jtjmz.cn http://www.morning.wjlrw.cn.gov.cn.wjlrw.cn http://www.morning.lsgjf.cn.gov.cn.lsgjf.cn http://www.morning.bsjpd.cn.gov.cn.bsjpd.cn