初次接触Blazor项目,很喜欢这个框架,使我等C#程序员不必再花时间和精力去学习各种前端UI框架。手头的项目正好要做一个界面丰富的前端,于是决定用Blazor Server来做。
项目分为前端和后台管理,后台管理已经用ASP.NET Core MVC完成。前端和后台共享一个数据库,前端主要是查询和展示,有少量提交和更新。
微软在github中的AspNetCore源码中提供了Blazor Server使用EF Core的源码:下载
在源码目录aspnetcore\blazor\common\samples\版本号\BlazorServerEFCoreSample\BlazorServerDbContextExample\Data中复制以下三个文件到自己的项目中:
DbContextFactory.cs
FactoryExtensions.cs
IDbContextFactory.cs
FactoryExtensions中包含一个扩展方法AddDbContextFactory,用来在StartUp中注册工厂方法。DbContextFactory则包含了创建EF上下文的工厂方法。
首先在StartUp中注册工厂方法
//以下代码添加到StartUp的ConfigureServices方法中
services.AddDbContextFactory<CloudContext>(options =>
options.UseMySql(Configuration.GetConnectionString("CloudContextConnection")));
//DeviceService是访问数据的类,需要在这里注册
services.AddSingleton<DeviceService>();

本文介绍了使用Blazor Server开发前端项目的过程。作者因项目需求选择该框架,解决了数据库访问问题,通过复制微软源码文件、注册工厂方法等操作实现。还处理了用户授权验证问题,虽添加Identity基架遇困难,但最终成功,并对项目模板进行改造,使注册登录页面可按需重写。
最低0.47元/天 解锁文章
847





