美文网首页.Net Core 5学习笔记
2、Blazor如何连接数据库

2、Blazor如何连接数据库

作者: _千_鸟_ | 来源:发表于2020-12-12 23:07 被阅读0次

    Blazor有两种开发模式:

    (1)Blazor Webassembly不能直连数据库,只能通过API加载。相当于网页版的客户端,只是用户无需安装浏览器。浏览器的安全机制,约束了以Blazor Webassembly实现的网站,在开发时不能直连数据库,因此创建默认模板时,看不到诸如appsettings.json的配置文件。因此这种实现方式,不能直连数据库,只能通过调用接口的方式加载数据,类似常规网页开发中,前端调用API加载数据一样。

    Blazor Webassembly调用api的官方说明参考:从 ASP.NET Core Blazor 调用 Web API

    提供一个参考方案:

    第一步:创建API。API端先进行发布,设置允许跨域访问,修改Startup.cs文件:

    在ConfigureServices函数中,添加

    services.AddCors(m => m.AddPolicy("Any", a => a.SetIsOriginAllowed(_ => true).AllowAnyMethod().AllowAnyHeader().AllowCredentials()));  //配置跨域访问

    在Configure函数中,添加

     app.UseCors();  //允许跨域访问

    保证Web API发布后,可以使用跨域进行访问。

    第二步:调用API加载数据。

       <h1 @onclick="Test">测试</h1>

      ……

       private async Task<string> APITest()

        {

            HttpClient client = new HttpClient();

            var str = await client.GetStringAsync("http://***:5000/api/Test/TestGet?id=1");

            Console.WriteLine(str);

            JObject data = JsonConvert.DeserializeObject<JObject>(str);

            Console.WriteLine(data["code"].ToString());

            list = new List<Models.test>();

            return data["code"].ToString();

        }

    可以使用网页检查调试,查看 Console.WriteLine的输出数据。

    (2)Blazor Server可以直连数据库,一般通过ADO.Net或者进行数据读写。相当于在后台实现所有服务,通过blazor的通信机制,实现数据的动态更新。这种情况下,服务端可以直连数据库。开发者可以像常规c#程序一样,使用ADO.Net连接数据库,也可以使用EF进行数据库处理。

    方式一:ADO.Net连接方式。原生c#的数据库连接,需要自己编写许多数据库处理脚本,不过连接方便。推荐一个开源框架: ThunderSQLCore,可以很方便的处理数据库的基础读写。

    方式二:EF的连接方式。Entity Framework Core 是适用于 .NET 的新式对象数据库映射器。 它支持 LINQ 查询、更改跟踪、更新和架构迁移。EF Core 适用于很多数据库,包括 SQL 数据库(本地和 Azure)、SQLite、MySQL、PostgreSQL 和 Azure Cosmos DB。参考:Entity Framework Core

    相关文章

      网友评论

        本文标题:2、Blazor如何连接数据库

        本文链接:https://www.haomeiwen.com/subject/qbzygktx.html