bh002- Blazor hybrid / Maui 使用ORM和数据库快速教程

2024-8-22 09:58| 发布者: 周三三| 查看: 198| 评论: 0

接上篇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

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
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一篇:CAD快速入门教程(一):软件界面布局初学指南

下一篇:还在苦恼牌技不够纯熟?快来get这份《乖离环》新手快速入门教程

交流热线
17501437970 周一至周日:09:00 - 21:00

创赢网-致力于帮助普通人在创业之路上披荆斩棘、走向成功的专业网站,汇聚创新智慧与成功机遇的网络天地,是创业者开启赢之征程的首选之地。

Powered by Discuz! X3.5 © 2023-2050 CHUANYING Team.

QQ|Archiver|手机版|小黑屋|创赢网 ( 湘ICP备17022177号-3 )

GMT+8, 2024-12-28 16:25 , Processed in 0.305601 second(s), 26 queries .

快速回复 返回顶部 返回列表