接上篇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. 運行效果
bh002- Blazor hybrid / Maui 使用ORM和數據庫快速教程-1.jpg (746.12 KB, 下載次數: 13)
下載附件
2024-8-22 10:48 上傳
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 |
|