.net8 blazor auto模式很爽(五)读取sqlite并显示(2)

2024-06-16 13:04

本文主要是介绍.net8 blazor auto模式很爽(五)读取sqlite并显示(2),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在BlazorApp1增加文件夹data,里面增加类dbcont

using SharedLibrary.Models;
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;namespace BlazorApp1.data
{public class dbcont : DbContext{public dbcont(DbContextOptions<dbcont> options): base(options){}public virtual DbSet<employee> employee { get; set; }protected override void OnModelCreating(ModelBuilder modelBuilder){// 配置主键// modelBuilder.Entity<employee>().HasKey(e => e.Id);// 或者对于没有主键的实体(仅适用于特定场景)modelBuilder.Entity<employee>().HasNoKey();base.OnModelCreating(modelBuilder);}}
}

在BlazorApp1的Program增加下面的代码:

//新增2 添加数据库连接
// 初始化 SQLite 提供程序
string connectionString = "Data Source=cellsmanage6.db3";
builder.Services.AddDbContext<dbcont>(options =>options.UseSqlite(connectionString, b => b.UseRelationalNulls(true)));
//新增2 结束
builder.Services.AddScoped<IEmployeeRepository, EmployeeService>();

在SharedLibrary的Repositories增加IEmployeeRepository

using SharedLibrary.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace SharedLibrary.Repositories
{public interface IEmployeeRepository{Task<List<employee>> GetEmployeesAsync();}
}

在Client的Services里增加EmployeeService

using SharedLibrary.Models;
using SharedLibrary.Repositories;
using System.Net.Http.Json;namespace BlazorApp1.Client.Services
{public class EmployeeService: IEmployeeRepository{private readonly HttpClient _httpClient;public EmployeeService(HttpClient httpClient){_httpClient = httpClient;}public async Task<List<employee>> GetEmployeesAsync(){return await _httpClient.GetFromJsonAsync<List<employee>>("api/Employee/Getemployee");}}
}

在Client的Program里面增加

builder.Services.AddScoped<IEmployeeRepository, EmployeeService>();

在Client的_Imports增加

@inject IEmployeeRepository EmployeeService

然后我们运行程序,得到了数据库中的数据

这篇关于.net8 blazor auto模式很爽(五)读取sqlite并显示(2)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1066531

相关文章

Java设计模式---迭代器模式(Iterator)解读

《Java设计模式---迭代器模式(Iterator)解读》:本文主要介绍Java设计模式---迭代器模式(Iterator),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录1、迭代器(Iterator)1.1、结构1.2、常用方法1.3、本质1、解耦集合与遍历逻辑2、统一

Java 线程安全与 volatile与单例模式问题及解决方案

《Java线程安全与volatile与单例模式问题及解决方案》文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字... 目录什么是线程安全线程安全问题的产生与解决方案线程的调度是随机的多个线程对同一个变量进行修改线程的修改操

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

SpringSecurity显示用户账号已被锁定的原因及解决方案

《SpringSecurity显示用户账号已被锁定的原因及解决方案》SpringSecurity中用户账号被锁定问题源于UserDetails接口方法返回值错误,解决方案是修正isAccountNon... 目录SpringSecurity显示用户账号已被锁定的解决方案1.问题出现前的工作2.问题出现原因各

Redis Cluster模式配置

《RedisCluster模式配置》:本文主要介绍RedisCluster模式配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录分片 一、分片的本质与核心价值二、分片实现方案对比 ‌三、分片算法详解1. ‌范围分片(顺序分片)‌2. ‌哈希分片3. ‌虚

MySQL 设置AUTO_INCREMENT 无效的问题解决

《MySQL设置AUTO_INCREMENT无效的问题解决》本文主要介绍了MySQL设置AUTO_INCREMENT无效的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录快速设置mysql的auto_increment参数一、修改 AUTO_INCREMENT 的值。

SpringBoot读取ZooKeeper(ZK)属性的方法实现

《SpringBoot读取ZooKeeper(ZK)属性的方法实现》本文主要介绍了SpringBoot读取ZooKeeper(ZK)属性的方法实现,强调使用@ConfigurationProperti... 目录1. 在配置文件中定义 ZK 属性application.propertiesapplicati

RedisTemplate默认序列化方式显示中文乱码的解决

《RedisTemplate默认序列化方式显示中文乱码的解决》本文主要介绍了SpringDataRedis默认使用JdkSerializationRedisSerializer导致数据乱码,文中通过示... 目录1. 问题原因2. 解决方案3. 配置类示例4. 配置说明5. 使用示例6. 验证存储结果7.

Python中文件读取操作漏洞深度解析与防护指南

《Python中文件读取操作漏洞深度解析与防护指南》在Web应用开发中,文件操作是最基础也最危险的功能之一,这篇文章将全面剖析Python环境中常见的文件读取漏洞类型,成因及防护方案,感兴趣的小伙伴可... 目录引言一、静态资源处理中的路径穿越漏洞1.1 典型漏洞场景1.2 os.path.join()的陷

RabbitMQ工作模式中的RPC通信模式详解

《RabbitMQ工作模式中的RPC通信模式详解》在RabbitMQ中,RPC模式通过消息队列实现远程调用功能,这篇文章给大家介绍RabbitMQ工作模式之RPC通信模式,感兴趣的朋友一起看看吧... 目录RPC通信模式概述工作流程代码案例引入依赖常量类编写客户端代码编写服务端代码RPC通信模式概述在R