网站首页 > 技术教程 正文
先说一个问题,就是照着网站的例子有些demo就跑不起来,也不知道是哪里出错了,另外纠结于怎么保存修改后的数据,最笨的方法应该是遍历一下list<T>吧
新建一个类,实现实体类、数据库上下文等
以前定义实体类、数据库上下文都是分开写在不同的类里,为了方便做测试,这次就先写到一个类里。
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Threading.Tasks;
namespace Blazor.OnlyServer1.Models
{
[Table("测试表")]
public class Test1
{
[Key]
public int Id { get; set; }
public string? 名称 { get; set; }
public string? 内容 { get; set; }
}
public class MyContext : DbContext
{
public DbSet<Test1> Tests { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("Server=Localhost;Database=xx;User Id=sa;Password=xxxxxxx;TrustServerCertificate=True");
}
}
public class DataHelp
{
/// <summary>
/// 增加一条测试的数据
/// </summary>
public static async Task AddData()
{
using (var context=new MyContext())
{
context.Add(new Test1 { 内容="测试数据",名称="新的名称" });
await context.SaveChangesAsync();
}
}
}
}
连接字符串中把数据库名称和密码换成自己真实的,然后在数据库中新建上一个表,就叫测试表吧。
关于中文表名的问题
数据库中是中文表名的话,两种解决方法:
方法1:在数据库上下文中定义DbSet时直接使用中文的表名,但是在后续使用时会一直用到,切换中文有些不方便
public DbSet<Test1> 测试表 { get; set; }
方法2:在定义实体类时通过table参数直接指定表名称,然后定义DbSet时用中文和英文都可以的。
[Table("测试表")]
public class Test1
{
[Key]
public int Id { get; set; }
public string? 名称 { get; set; }
public string? 内容 { get; set; }
}
在组件中使用分页查询
先定义一个在组件中使用的list<T>对像T1
private List<Test1> T1 = new List<Test1>();
然后在查询按钮下给它数据
public async Task QueryData()
{
using (var context = new MyContext())
{
T1 = context.Tests.Skip(5).Take(5).ToList();
}
}
在UI中增加一个按钮,点击时执行分页查询事件
<Button Text="查询数据" OnClick="QueryData"></Button>
<Button Text="分页数据" OnClick="QueryDataPage"></Button>
<Divider>表格测试</Divider>
<Table TItem="Test1" Items="@T1" IsPagination="true" PageItems="2"
IsStriped="true" IsBordered="true"
ShowToolbar="true" ShowDeleteButton="false"
ClickToSelect="true" DoubleClickToEdit="true">
<TableColumns>
<TableColumn @bind-Field="@context.Id" Text="名称" Width="180" />
<TableColumn @bind-Field="@context.内容" Text="小单位" />
<TableColumn @bind-Field="@context.名称" Text="数据"/>
</TableColumns>
</Table>
这里需要特别注意的一点是使用分页查询时,你的数据库一定要新,不能是SQL 2005之类的,不然EF core在生成分页代码时会直接出错,昨天分页时一直没数据,不知道什么原因,最后才发现是自动生成的分页SQL在低版本SQL Server中执行不了。
想要增加一条数据的话,也是增加一个按钮就行了,这里增加的是一条固定的数据
<Button Text="增加数据" OnClick="onAdd"></Button>
public async Task onAdd()
{
//先增加一条数据,再查询显示出来
DataHelp.AddData();
QueryData();
}
就这吧,一会重装个新版的数据库
猜你喜欢
- 2025-05-11 分子动力学结合点突变揭示GPCR家族A3腺苷受体与激动剂的结合特征
- 2025-05-11 mybatisplus的介绍和基本使用
- 2025-05-11 微软收购RPA供应商Softomotive,在自动化流程技术之路谋求存在感?
- 2025-05-11 创科自动化:机器视觉是自动化设备的“眼睛”
- 2025-05-11 老人怀60年钙化胎儿 盘点不可思议医学奇迹:用牙齿做眼睛
- 2025-05-11 Quartz 是什么?一文带你入坑
- 2025-05-11 牛人花8万自己造车,但大哥你为啥不直接买辆新的呢?
- 2025-05-11 CBN丨ASEAN becomes hotspot for Chinese tourists in Q1
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)