• .Net ABP Zero sqlite 集成


    安装

    安装 Microsoft.EntityFrameworkCore.Sqlite NuGet 包到 *.EntityFrameworkCore 项目.

    注: 不要安装 成Microsoft.EntityFrameworkCore.Sqlite.Core 会报错的.

    配置DbContext

    由于SQLite不支持多线程,因此应该在*EntityFrameworkModule.PreInitialize()方法中禁用事务。

    
    
    public class 你的项目名称EntityFrameworkModule : AbpModule
    {
        public override void PreInitialize()
        {
            ...
            // add this line to disable transactions
            Configuration.UnitOfWork.IsTransactional = false;
            ...
        }
    }
     
    替换 你的项目名称DbContextConfigurer.cs
    public static class SqliteDemoDbContextConfigurer
    {
        public static void Configure(DbContextOptionsBuilder<SqliteDemoDbContext> builder, string connectionString)
        {
            builder.UseSqlite(connectionString);
        }
    
        public static void Configure(DbContextOptionsBuilder<SqliteDemoDbContext> builder, DbConnection connection)
        {
            builder.UseSqlite(connection);
        }
     }
    
    
    配置连接字符串

    在* .Web.Mvc / appsettings.json中将连接字符串更改为SQLite连接。例:

    {
      "ConnectionStrings": {
        "Default": "Data Source=SqliteDemoDb.db"
      },
      ...
    }
    创建数据库

    在创建数据库之前,删除* .EntityFrameworkCore / Migrations文件夹下的所有迁移类。

    注:Migrations文件夹下 除了Seed文件夹,其他的迁移类都要删除,不然始终不会生成数据库表.特别是*bContextModelSnapshot文件.不删不会创建表.

    现在它已经准备好构建数据库了。

    • 选择* .Web.Mvc作为启动项目。
    • 打开包管理器控制台并选择* .EntityFrameworkCore项目。
    • 运行add-migration Initial_Migration命令
    • 运行update-database命令

    SQLite集成现已完成。

    hangfire与Sqlite集成

    安装 Hangfire.SQLite.Core

    修改Startup.cs

                if (WebConsts.HangfireDashboardEnabled)
                {
                    services.AddHangfire(config =>
                    {
      config.UseSQLiteStorage(_appConfiguration.GetConnectionString("Default"));
                    });
                }
     JobStorage.Current = new SQLiteStorage(_appConfiguration.GetConnectionString("Default"));
    其他问题

    与SQLite集成.由于多线程的问题.不能开启事务.有些代码就i需要调整.

    比如:Abp 自带事件中 EntityCreatingEventData ,EntityUpdatingEventData等.执行中的任务. 跑出异常后数据不会回滚

  • 相关阅读:
    IDEA 运行junit单元测试方法
    IDEA 修改编码
    接口文档word版
    java 上传文件到七牛云中
    单例模式
    洛谷P3092 [USACO13NOV]没有找零No Change
    Codevs 1159 最大全0子矩阵
    洛谷P2733 家的范围 Home on the Range
    洛谷P2280 [HNOI2003]激光炸弹
    洛谷P2023 [AHOI2009]维护序列
  • 原文地址:https://www.cnblogs.com/hongshao/p/11260650.html
Copyright © 2020-2023  润新知