diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 22d408412..afeaca4cb 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -3523,6 +3523,13 @@ UserFeedBackService + + + 设置用户反馈状态 并且可以提供理由 + + + + 批量更新状态 @@ -17299,12 +17306,22 @@ UserFeedBackView 列表视图模型 + + + 原因 + + UserFeedBackQuery 列表查询参数模型 UserFeedBackAddOrEdit 列表查询参数模型 + + + 原因 + + UserLogView 列表视图模型 diff --git a/IRaCIS.Core.Application/Service/Management/UserFeedBackService.cs b/IRaCIS.Core.Application/Service/Management/UserFeedBackService.cs index f51b01300..b98d1f12b 100644 --- a/IRaCIS.Core.Application/Service/Management/UserFeedBackService.cs +++ b/IRaCIS.Core.Application/Service/Management/UserFeedBackService.cs @@ -73,7 +73,7 @@ namespace IRaCIS.Core.Application.Service { if (inQuery.Id == null && inQuery.VisitTaskId == null) { - throw new BusinessValidationFailedException("Id 或者VisitTaskId 必传一个"); + throw new BusinessValidationFailedException("The interface parameter Id or VisitTaskId cannot be passed at the same time"); } var result = await _userFeedBackRepository diff --git a/IRaCIS.Core.Infra.EFCore/Context/Convention/NoForeignKeyMigrationsSqlGenerator.cs b/IRaCIS.Core.Infra.EFCore/Context/Convention/NoForeignKeyMigrationsSqlGenerator.cs index 941930c99..7ecc9f9a0 100644 --- a/IRaCIS.Core.Infra.EFCore/Context/Convention/NoForeignKeyMigrationsSqlGenerator.cs +++ b/IRaCIS.Core.Infra.EFCore/Context/Convention/NoForeignKeyMigrationsSqlGenerator.cs @@ -61,23 +61,51 @@ public class NoForeignKeyMigrationsSqlGenerator : SqlServerMigrationsSqlGenerato //} // 检查是否是外键索引 - var table = model?.FindEntityType(operation.Table); - if (table != null) - { - foreach (var foreignKey in table.GetForeignKeys()) - { - // 如果索引列和外键列相同,跳过生成 - if (operation.Columns.SequenceEqual(foreignKey.Properties.Select(p => p.Name))) - { - return; // 跳过生成外键索引 - } - } - } + //var table = model?.FindEntityType(operation.Table); + //if (table != null) + //{ + // foreach (var foreignKey in table.GetForeignKeys()) + // { + // // 如果索引列和外键列相同,跳过生成 + // if (operation.Columns.SequenceEqual(foreignKey.Properties.Select(p => p.Name))) + // { + // return; // 跳过生成外键索引 + // } + // } + //} + + + if (IsForeignKeyIndex(operation, model)) + return; // 非外键索引,调用基类方法正常生成 base.Generate(operation, model, builder, terminate); } + private bool IsForeignKeyIndex(CreateIndexOperation operation, IModel? model) + { + var entity = model? + .GetEntityTypes() + .FirstOrDefault(e => + e.GetTableName() == operation.Table && + e.GetSchema() == operation.Schema); + if (entity == null) + return false; + + var tableId = StoreObjectIdentifier.Table(operation.Table, operation.Schema); + + foreach (var fk in entity.GetForeignKeys()) + { + var cols = fk.Properties + .Select(p => p.GetColumnName(tableId)) + .ToArray(); + + if (cols.SequenceEqual(operation.Columns)) + return true; + } + + return false; + } } diff --git a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs index bdeb5d3c6..2bc5b9878 100644 --- a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs +++ b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs @@ -67,7 +67,8 @@ public class IRaCISDBContext : DbContext //https://learn.microsoft.com/zh-cn/ef/core/modeling/relationships/conventions?utm_source=chatgpt.com configurationBuilder.Conventions.Remove(typeof(ForeignKeyIndexConvention)); - + + } protected override void OnModelCreating(ModelBuilder modelBuilder)