From 1c55bbd043a28198980f7b44db00f65bb2de7e3f Mon Sep 17 00:00:00 2001 From: liu liang Date: Fri, 19 Jan 2024 01:37:53 +0800 Subject: [PATCH] 8.0.1 --- CHANGELOG.md | 4 +++ src/WalkingTec.Mvvm.Core/DataContext.cs | 5 ++++ .../Helper/FrameworkServiceExtension.cs | 19 ++++++++++++- .../Helper/WtmElsaContext.cs | 27 +++++++++++++++++++ version.props | 2 +- 5 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 src/WalkingTec.Mvvm.Mvc/Helper/WtmElsaContext.cs diff --git a/CHANGELOG.md b/CHANGELOG.md index d27deff91..2987a7e25 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## v8.x.x +##8.0.1(2024-1-19) +* **修改:** 修复工作流在Oracle中不能正常启动的问题 + + ##8.0.0(2024-1-11) * **修改:** 全面升级支持dotnet8 diff --git a/src/WalkingTec.Mvvm.Core/DataContext.cs b/src/WalkingTec.Mvvm.Core/DataContext.cs index d4b527fff..3ddce7a1a 100644 --- a/src/WalkingTec.Mvvm.Core/DataContext.cs +++ b/src/WalkingTec.Mvvm.Core/DataContext.cs @@ -590,6 +590,11 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) if (DBType == DBTypeEnum.Oracle) { modelBuilder.Model.SetMaxIdentifierLength(30); + modelBuilder.Entity().ToTable("Bookmarks"); + modelBuilder.Entity().ToTable("Triggers"); + modelBuilder.Entity().ToTable("WorkflowDefinitions"); + modelBuilder.Entity().ToTable("WorkflowExecutionLogRecords"); + modelBuilder.Entity().ToTable("WorkflowInstances"); } } diff --git a/src/WalkingTec.Mvvm.Mvc/Helper/FrameworkServiceExtension.cs b/src/WalkingTec.Mvvm.Mvc/Helper/FrameworkServiceExtension.cs index 4328a8e0d..38aa1f717 100644 --- a/src/WalkingTec.Mvvm.Mvc/Helper/FrameworkServiceExtension.cs +++ b/src/WalkingTec.Mvvm.Mvc/Helper/FrameworkServiceExtension.cs @@ -598,7 +598,24 @@ public static IServiceCollection AddWtmWorkflow(this IServiceCollection services elsa.UseNonPooledEntityFrameworkPersistence(ef => ef.UseSqlite(cs.Value)); break; case DBTypeEnum.Oracle: - elsa.UseNonPooledEntityFrameworkPersistence(ef => ef.UseOracle(cs.Value)); + elsa.UseNonPooledEntityFrameworkPersistence(ef => ef.UseOracle(cs.Value, op => + { + switch (cs.Version) + { + case "19": + op.UseOracleSQLCompatibility(OracleSQLCompatibility.DatabaseVersion19); + break; + case "21": + op.UseOracleSQLCompatibility(OracleSQLCompatibility.DatabaseVersion21); + break; + case "23": + op.UseOracleSQLCompatibility(OracleSQLCompatibility.DatabaseVersion23); + break; + default: + op.UseOracleSQLCompatibility(OracleSQLCompatibility.DatabaseVersion19); + break; + } + })); break; case DBTypeEnum.DaMeng: break; diff --git a/src/WalkingTec.Mvvm.Mvc/Helper/WtmElsaContext.cs b/src/WalkingTec.Mvvm.Mvc/Helper/WtmElsaContext.cs new file mode 100644 index 000000000..09c2ebe25 --- /dev/null +++ b/src/WalkingTec.Mvvm.Mvc/Helper/WtmElsaContext.cs @@ -0,0 +1,27 @@ +using Elsa.Persistence.EntityFramework.Core; +using Microsoft.EntityFrameworkCore; + +namespace WalkingTec.Mvvm.Mvc.Helper +{ + public class WtmElsaContext : ElsaContext + { + public WtmElsaContext(DbContextOptions options) : base(options) + { + } + + public override string Schema + { + get + { + if (Database.IsOracle()) + { + return null; + } + else + { + return base.Schema; + } + } + } + } +} diff --git a/version.props b/version.props index 516af7901..c3d7b3037 100644 --- a/version.props +++ b/version.props @@ -1,6 +1,6 @@ - 8.0.0 + 8.0.1