zoukankan      html  css  js  c++  java
  • .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等.执行中的任务. 跑出异常后数据不会回滚

  • 相关阅读:
    [转贴] IPSEC From 知乎
    intel 的架构图
    IPV6 简单验证
    exsi6.0远程修改密码
    Oracle单个datafile大小的限制
    用Linux完成Oracle自动物理备份
    vSphere Client 更改 ESX/ESXi 主机的端口
    netstat Recv-Q和Send-Q
    Linux下安装(卸载)KDE和GNOME
    完美解决xhost +报错: unable to open display ""
  • 原文地址:https://www.cnblogs.com/hongshao/p/11260650.html
Copyright © 2011-2022 走看看