Wpf 使用 Prism 实战开发Day10

这篇具有很好参考价值的文章主要介绍了Wpf 使用 Prism 实战开发Day10。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

数据库创建

1-9章节已经把基本功能都做好了,但页面的数据是后台模拟生成的静态数据。接下来所有章节就是实现,页面的所有数据都是从数据库中获取,并且实现页面数据的持久化以及增删改查。


一.使用微软提供的 Microsoft.EntityFrameworkCore (EF)做为数据库访问,然后通过 EF 工具根据代码,创建表、生成数据库表结构、以及迁移文件。

使用Sqlite 做为数据库 

1.打开 MyToDo.Api项目,右键=》选择 管理NuGet 程序包 ,进行下载安装下面3个程序包
  •   Microsoft.EntityFrameworkCore.Sqlite 
  •   Microsoft.EntityFrameworkCore.Tools
  •   Microsoft.EntityFrameworkCore.Design

注意:安装程序包的时候根据本地的sdk版本,选择对应的程序包版本。例如,我本地已经安装了.net code 8.0,所以我安装的程序包版本就选最新的8.0.1

wpf prism增删改查,WPF入门,数据库,c#,wpf

 2.必需的程序包安装准备完成后,进下来进行创建操作数据库的实体类。在进行数据库迁移操作完成后,这些实体类的名称就是数据库的表名,实体类里面的属性就是该表的字段名。
  • 创建  BaseEntity  基类,即所有实体类的共同的属性类
 public class BaseEntity
 {
     public int Id { get; set; }
     public DateTime CreateDate { get; set; }
     public DateTime UpdateDate { get; set; }
 }
  •  创建  ToDo 待办事项类,并且继承基类。
 public class ToDo:BaseEntity
 {
     public string Title { get; set; }
     public string Content { get; set; }
     public int Status { get; set; }
 }
  • 创建  Memo 备忘录类,也同样继承基类。
    public class Memo:BaseEntity
    {
        public string Title { get; set; }
        public string Content { get; set; }
    }
  • 创建 User 用户类,同样都继承基类。
public class User:BaseEntity
{
    /// <summary>
    /// 登录账号
    /// </summary>
    public string Account { get; set; }
    public string UserName { get; set; }
    public string PassWord { get; set; }
}

wpf prism增删改查,WPF入门,数据库,c#,wpf


 3.创建完成实体类后,需要在程序中构建DbContext,用于连接访问数据库上下文
  •  创建一个 MyToDoContext 类,并且继承自 DbContext。需要引入 Microsoft.EntityFrameworkCore 包。并且为每张表(实体类)添加 DbSet。同时需要在构造函数中,添加一个 DbContextOptions,且把当前创建MyToDoContext 类传进去。
    public class MyToDoContext : DbContext
    {
        public MyToDoContext(DbContextOptions<MyToDoContext> options):base(options)
        {
                
        }
        public DbSet<ToDo> ToDo { get; set; }
        public DbSet<Memo> Memo { get; set; }
        public DbSet<User> User { get; set; }
    }

wpf prism增删改查,WPF入门,数据库,c#,wpf

以上就是EF 中,创建 数据库上下文 DbContext类的一个标准写法。


4.在Program.cs 中,进行数据库依赖注入。.net 6.0 开始后,就没有 Startup.cs 文件了,所有的注册依赖项和中间件放到 Program.cs中。

  • 在 appsettings.json 文件中,添加数据库配置连接
"ConnectionStrings": {
  "ToDoConnection": "Data Source=todo.db"
}

wpf prism增删改查,WPF入门,数据库,c#,wpf

  • 在Program.cs 中进行数据库注入
builder.Services.AddDbContext<MyToDoContext>(option =>
{
    //获取数据库连接
    var connectionString = builder.Configuration.GetConnectionString("ToDoConnection");
    //使用sqlite
    option.UseSqlite(connectionString);
});

wpf prism增删改查,WPF入门,数据库,c#,wpf

  •  打开工具箱,选择 程序包管理器控制台,使用命令行 进行创建数据库迁移文件。

wpf prism增删改查,WPF入门,数据库,c#,wpf

 程序包管理器控制台打开后,这里的默认项目,一定要选择当前的MyToDo.Api 项目。或者把当前项目设置为默认启动项后,一打开包管理器控制台,就默认当前的项目了。

wpf prism增删改查,WPF入门,数据库,c#,wpf


 4. 进行数据库迁移操作
  •   add-migration Mytodo  命令进行迁移操作,Mytodo是自定义的名称。

wpf prism增删改查,WPF入门,数据库,c#,wpf

如上报错提示安装 Microsoft.EntityFrameworkCore.Design 包,但是已经安装了,还是提示错误。需要把  MyToDo.Api 项目设置为启动项,重新执行迁移命令即可。

wpf prism增删改查,WPF入门,数据库,c#,wpf

如下图,显示这样即命令执行成功了。

wpf prism增删改查,WPF入门,数据库,c#,wpf


接着就会在当前的项目下面,自动生成一个 Migrations 迁移文件夹以及对应的迁移文件,该文件夹下面的迁移文件,会记录每一次执行的迁移操作。如果需要移除该文件,需要执行 Remove-Migration。而不是手动进行右键删除。

wpf prism增删改查,WPF入门,数据库,c#,wpf


  • 执行完迁移命令后,还没有把当前的迁移文件更新到数据库,也就是还没有在数据库中,生成对应的数据库表。所以还需要执行   update-database 命令,更新或生成表保存到数据库中。

wpf prism增删改查,WPF入门,数据库,c#,wpf

当 update-database 命令执行后,看到结尾出现 Done.的时候,就证明该命令已经执行成功了。


  • 最后,在会当前目录下面,生成一个todo.db 的数据库文件。这个就是Sqlite 的数据库文件。

wpf prism增删改查,WPF入门,数据库,c#,wpf


二.查看Sqlite 数据库表工具,推荐使用 DBeaver   

  • 安装完成DBeaver 数据库管理工具后,创建新连接,选择 Sqlite

wpf prism增删改查,WPF入门,数据库,c#,wpf

  • 这里的路径,指向 MyToDo.Api 项目下面的 todo.db 的数据库文件

wpf prism增删改查,WPF入门,数据库,c#,wpf

  •  创建完成,点击连接数据库的时候,如果报错这个。是因为没有下载 Sqlite 对应的jar驱动文件。需要进行下载。

wpf prism增删改查,WPF入门,数据库,c#,wpf

进去下载最新的版本的 sqlite jar 驱动包。

wpf prism增删改查,WPF入门,数据库,c#,wpf

下载完成后。选中todo.db数据库,右键=》编辑连接

wpf prism增删改查,WPF入门,数据库,c#,wpf

1. 编辑驱动设置
wpf prism增删改查,WPF入门,数据库,c#,wpf
 2. 选择=》库,删除自带的sqlite驱动

wpf prism增删改查,WPF入门,数据库,c#,wpf

 3. 然后点添加文件,找到刚下载的Sqlite jar包,最后确定。

wpf prism增删改查,WPF入门,数据库,c#,wpf

 4. 双击todo.db 进行重新连接,会提示下载驱动,点下载。就可以了。最后就能正常打开todo.db数据库并且能看到我们 生成的数据库表了。

wpf prism增删改查,WPF入门,数据库,c#,wpf文章来源地址https://www.toymoban.com/news/detail-824069.html

到了这里,关于Wpf 使用 Prism 实战开发Day10的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Wpf 使用 Prism 实战开发Day19

    由于待办事项功能页,数据已正常渲染出来了。但页面新增,查询,修改,删除等功能还未实现。本章节来实现页面的请求后台实现CURD(增删改查) 根据渲染出来的待办事项,点击对应的待办事项时,查找出该条数据,显展示在编辑窗口中。 同时在搜索框中输入的参数或选

    2024年04月23日
    浏览(37)
  • Wpf 使用 Prism 实战开发Day13

    在上一节  ToDoController 控制器,或 IToDoService 服务接口中,方法的传参都是直接传的实体类。但在实际开发过程中,这样是不允许的。标准且规范的做法是,定义一个数据传输层,即Dto层。 1. 创建 BaseDto 基类,用于存放共用属性。 2. 创建待办事项 Dto类,并继承自 BaseDto 基类

    2024年01月20日
    浏览(45)
  • Wpf 使用 Prism 实战开发Day08

    1.效果图 MemoView.xaml 页面代码      1. 在  ItemsControl 中,添加滚动条  ScrollViewer  这样使用 ScrollViewer 把内容区域包裹起来,就能让内容区域支持滚动了        2 . 添加滚动条后的效果图如下:  使用md 中的一个自带动画 md:TransitioningContent 来实现该功能  需要设置一个属性,

    2024年02月03日
    浏览(38)
  • Wpf 使用 Prism 实战开发Day14

    备忘录控制器(MemoController)和待办事项控制器 (ToDoController)功能实现差不多一样。基本套路就是: 定义控制器(Controller) 定义数据传输层(Dto) 配置实体类(Entity)和数据传输类(Dto) 关系映射(Auto Mapper) 定义服务接口(IService) 实现服务接口 (Service) 把服务注入控

    2024年01月22日
    浏览(45)
  • Wpf 使用 Prism 实战开发Day01

    1.  VisualStudio 2022 2.  . NET SDK 7.0 3.  Prism 版本 8.1.97 以上环境,如有新的版本,可自行选择安装新的版本为主 项目名称:这里只是记录学习,所以随便命名都无所谓,只要觉得合理就行 注意: 下载的包名是 Prism.DryIoc 。为什么不是Prism.xxx其他包,而是 Prism.DryIoc ,别问我,我也不

    2024年02月08日
    浏览(41)
  • WPF开发之Prism详解【内附源码】

    在实际应用开发中,随着项目业务逐渐复杂,耦合度会越来越高,维护成本也会直线上升,所以解耦也变得越来越重要。Prism框架为WPF开发中解耦提供了非常便捷的应用。今天主要以一个简单的小例子,简述WPF开发中Prism框架的简单应用,如有不足之处,还请指正。 Prism是一个

    2023年04月16日
    浏览(39)
  • WPF Prism的简单使用

    新建 WPF 项目,我是基于 .net 5.0-windows 创建的。 引入 Prism.DryIoc(8.1.97) 的 Nuget 包。 App.xaml 中引入命名空间。 将 App.xaml 中 Application 标签更改成 prism:PrismApplication 并去除 StartUri 属性,将 App.xaml.cs 中 Application 更改成 PrismApplication 。 实现 PrismApplication (实际上是 PrismApplicationBas

    2023年04月14日
    浏览(74)
  • WPF开发学生信息管理系统【WPF+Prism+MAH+WebApi】(四)

    最近通过WPF开发项目,为了对WPF知识点进行总结,所以利用业余时间,开发一个学生信息管理系统【Student Information Management System】。前三篇文章进行了框架搭建和模块划分,后台WebApi接口编写,以及课程管理模块开发,本文在前三篇基础之上,继续深入开发学生信息管理系统

    2024年02月04日
    浏览(44)
  • WPF框架Prism的使用 二

    这是第二篇关于Prism-WPF的介绍,第一篇中我们简单介绍了Prism,然后讲述了如何搭建一个MVVM的简单页面程序。其实我写的文章就是把github上面的官方例子摘出来自己跑了一遍,然后加上了一些自己的理解,简单给大家分享一下。 下面放上传送门: 第一篇的链接 官方提供的示

    2024年04月10日
    浏览(46)
  • wpf 项目中使用 Prism + MaterialDesign

      1.通过nuget安装MaterialDesign  2.通过nuget安装Prism 3.修改App.xmal  红色矩形框是需要更改的地方  3.修改app.xmal.cs文件 修改红色矩形框中的内容   至此,编译不出错,就算是好了 这时会出现两个窗体 记得删除  StartupUri=\\\"MainWindow.xaml\\\"即可

    2024年02月14日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包