注册
ABP连接达梦数据库
专栏/Database Thinking/ 文章详情 /

ABP连接达梦数据库

胡li 2023/02/24 2900 5 2
摘要 代码链接https://gitee.com/guangluo/dm-abp-efcore 教程链接https://docs.abp.io/zh-Hans/abp/4.4/Entity-Framework-Core-Other-DBMS 详细配置步骤,请查看文章内容:

1. 软件环境

|软件名称及版本|
|.Net 5|
|ABP 4.0.0|
|VS 2019|
|DM 8|

2. 安装相关软件

2.1 Donet 5安装

下载链接如下:
https://dotnet.microsoft.com/zh-cn/download/dotnet,点击链接进入下图
image.png
点击上图.NET 5.0链接进行sdk等版本下载界面
image.png
下载并安装后好,可查看dotnet的版本
image.png

2.2 安装Volo.Abp.Cli

可以直接安装最新的abp.cli版本,需要更新的NET环境。

dotnet tool install -g Volo.Abp.Cli

或者在命令后面加–version 可以安装你想要的cli版本

dotnet tool install -g Volo.Abp.Cli –version 4

截图如下:
image.png

3. 创建.NET 5的ABP项目

在cmd窗口进入项目目录

cd F:\workspace\.net\DmProjectABP

然后执行

abp new BookStore  --version 4.3.3

可以更改–verion创建.net 6或者7的项目,需要安装匹配的Net版本

截图如下:
image.png
将在DmProjectABP项目生成.Net 5的项目
image.png
双击上图的BookStore.sln使用vs打开,项目目录结构如下:
image.png

4. 修改db配置

将SqlServer相关配置修改成使用达梦数据库。

4.1 添加nuGet包

右击BookStore.EntityFrameworkCore项,选择管理Nuget程序包,如下图
image.png
点击管理NuGet程序包后进入下图包管理界面:
image.png
点击上图齿轮图标,添加DM本地驱动包
image.png
上图自定义的包记得勾选上,点击确定后,返回Nuget包管理器界面,将程序包源选中上图设置的本地私有包名,安装DmProvicer和FrameworkCore.dm驱动。
image.png
安装后的展示图
image.png

4.2 将默认数据库替换成DM

将SQL Server配置修改成达梦数据库。

4.2.1 删除模块依赖项

从 BookStoreEntityFrameworkCoreModule类的依赖列表中删除AbpEntityFrameworkCoreSqlServerModule和相关SqlServer相关配置。
image.png

4.2.2 更改UseSqlServer()调用

在BookStoreEntityFrameworkCoreModule类中找到以下代码:

          Configure<AbpDbContextOptions>(options =>
            {
                /* The main point to change your DBMS.
                 * See also BookStoreMigrationsDbContextFactory for EF Core tooling. */
              options.UseSqlServer();
         });

替换成以下代码:

     Configure<AbpDbContextOptions>(options =>
            {
                options.Configure(ctx =>
                {     ctx.DbContextOptions.UseDm("Server=localhost;PORT=5236;USER=SYSDBA;PASSWORD=SYSDBA");
                });
            });

4.2.3 更改连接字符串

DM连接字符串与SQL Server连接字符串不同。检查解决方案中所有的 appsettings.json 文件,更改其中的连接字符串。通常需要更改 DbMigrator 和 Web 项目里面的 appsettings.json,但它取决于你的解决方案结构。

"Default": "Server=localhost;PORT=5236;USER=SYSDBA;PASSWORD=SYSDBA"

4.2.4更改迁移DbContext Factory

启动模板包含BookStoreMigrationsDbContextFactory类,这是EF Core控制台命令所必须的类(比如Add-Migration和Update-Database),在切换到DM数据库时,我们同时也需要修改DbContextOptionsBuilder
在 BookStoreMigrationsDbContextFactory类中找到以下代码:

var builder = new DbContextOptionsBuilder<YourProjectNameMigrationsDbContext>()
    .UseSqlServer(configuration.GetConnectionString("Default"))

将其替换为:

 var builder = new DbContextOptionsBuilder<BookStoreMigrationsDbContext>()
                .UseDm(configuration.GetConnectionString("Default"));

5. 重新生成迁移

启动模板使用Entity Framework Core的Code First迁移。EF Core迁移取决于所选的DBMS提供程序。因此更改DBMS提供程序会导致迁移失败,这将创建一个配置所有数据库对象(表)的数据库迁移。运行 .DbMigrator 项目创建数据库和初始种子数据。。步骤如下:

  • 删除 .EntityFrameworkCore.DbMigrations 项目下的Migrations文件夹,并重新生成解决方案。
  • 在解决方案资源管理器右击 .DbMigrator (或 .Web) 做为启动项。
  • 在程序包管理控制台选择 .EntityFrameworkCore.DbMigrations 做为默认项目)。
  • 然后在程序包管理控制台中运行 Add-Migration “Initial”。

image.png

程序包管理控制台

注:包管理控制台打开路径:工具 -> Nuget包管理器->程序包管理控制台

如果需要更换用户名,比如SYSDBA更换到TEST11,将相关的url用户名和密码修改后,重新运行.DbMigrator项,填充数据后,再运行web程序

如果涉及到数据表的变更,可执行以下命令
734e8f2832f613cb5df45ffeba1f836.png

6. 运行应用程序

它已准备就绪, 只需要按ctrl+F5运行该应用程序与享受编码。默认登录密码为admin/1q2w3E*。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服