接上篇bh002- Blazor hybrid / Maui 保存设置快速教程
源码 BlazorHybrid/bh100days/bh002_ORM at master · densen2014/BlazorHybrid · GitHub
10. 添加引用
Index.razor.cs
添加引用
using FreeSql.DataAnnotations;#if WINDOWSusing Windows.Storage;#endif 11. 简单使用freesql ORM 初始化数据,添加数据
public partial class Index{ [DisplayName("用户名")] [Required(ErrorMessage = "请输入用户名")] public string NewUsername { get; set; } List<Users> UserList { get; set; } string Dbpath { get; set; } protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender) { StateHasChanged(); } //添加这句 await OrmTestAsync(); } } async Task OrmTestAsync() {#if WINDOWS string dbpath = Path.Combine(ApplicationData.Current.LocalFolder.Path, "hybrid.db");#elif ANDROID || IOS || MACCATALYST string dbpath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "hybrid.db");#else string dbpath = "hybrid.db";#endif Fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.Sqlite, $"Data Source={dbpath};") //调试sql语句输出 .UseMonitorCommand(cmd => System.Console.WriteLine(cmd.CommandText + Environment.NewLine)) //自动同步实体结构到数据库,FreeSql不会扫描程序集,只有CRUD时才会生成表。 .UseAutoSyncStructure(true) .UseNoneCommandParameter(true) .Build(); if (Fsql.Select<Users>().Count() < 1) { var itemList = Users.GenerateDatas(); Fsql.Insert<Users>().AppendData(itemList).ExecuteAffrows(); } UserList= await Fsql.Select<Users>().ToListAsync(); Dbpath = dbpath; StateHasChanged(); } async Task Add() { Fsql.Insert(new Users() { Username = NewUsername , FullName = "试用用户"}).ExecuteAffrows(); UserList = await Fsql.Select<Users>().ToListAsync(); StateHasChanged(); }}12. 用户表实体类
源码工程为了简单起见,都暂时放在同一个文件里面.
/// <summary>/// 用户表/// </summary>public class Users{ [Column(IsIdentity = true, IsPrimary = true)] [DisplayName("序号")] public Guid UserID { get; set; } //[Column(IsPrimary = true)] [DisplayName("用户名")] [Required] public string Username { get; set; } [DisplayName("真实姓名")] [Required] public string FullName { get; set; } [DisplayName("启用")] public bool? Enable { get; set; } = false; public static List<Users> GenerateDatas() { var ItemList = new List<Users>() { new Users { Username = "root" , FullName="超级用户", Enable =false }, new Users { Username = "admin" , FullName="管理员", Enable =true }, new Users { Username = "guest" , FullName="游客", Enable =false }, new Users { Username = "user" , FullName="正式用户", Enable =true }, }; return ItemList; }}13. 列表数据
Index.razor
<hr />添加用户:<InputText @bind-Value="NewUsername" /><button @onclick="Add">添加</button>@if (UserList != null){ @foreach (var item in UserList) { <p><b>@item.FullName</b> <h5>@item.Username</h5></p> }}Dbpath: @Dbpath14. 运行效果
15. 相关资料
如何远程调试 MAUI blazor / Blazor Hybrid
https://www.cnblogs.com/densen2014/p/16988516.html
知识共享许可协议
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名AlexChow(包含链接: https://github.com/densen2014 ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系 。
转载声明
作者:周创琳 AlexChow,转载请注明原文链接:https://www.cnblogs.com/densen2014/p/17637344.html |
|