项目配置使用Json 列 测试
continuous-integration/drone/push Build is passing Details

IRC_NewDev
hang 2024-11-08 13:49:49 +08:00
parent 1f33a9fa4e
commit 41a889f201
7 changed files with 18144 additions and 12 deletions

View File

@ -68,7 +68,6 @@ namespace IRaCIS.Core.Application.Contracts
public List<string> ModalityList { get; set; } = new List<string>();
public string TrialObjectNameConfigStr { get; set; }
public List<TrialObjectNameConfig> TrialObjectNameList { get; set; }

View File

@ -908,7 +908,6 @@ namespace IRaCIS.Core.Application
trialConfig.Modalitys = $"{String.Join('|', trialConfig.ModalityList)}";
trialConfig.TrialObjectNameConfigStr=JsonConvert.SerializeObject(trialConfig.TrialObjectNameList);
_mapper.Map(trialConfig, trialInfo);
trialInfo.UpdateTime = DateTime.Now;
@ -1351,11 +1350,11 @@ namespace IRaCIS.Core.Application
/// <returns></returns>
public async Task<TrialExtraConfig> GetTrialExtralConfig(Guid trialId)
{
var extralObj = _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.TrialExtraConfigJsonStr, t.TrialObjectNameConfigStr }).FirstOrDefault();
var extralObj = _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.TrialExtraConfigJsonStr, t.TrialObjectNameList }).FirstOrDefault();
var extralConfig = JsonConvert.DeserializeObject<TrialExtraConfig>(extralObj?.TrialExtraConfigJsonStr) ?? new TrialExtraConfig();
extralConfig.TrialObjectNameList = JsonConvert.DeserializeObject<List<TrialObjectNameConfig>>(extralObj?.TrialObjectNameConfigStr) ?? new List<TrialObjectNameConfig>();
extralConfig.TrialObjectNameList = extralObj.TrialObjectNameList;
return extralConfig;
}

View File

@ -261,14 +261,14 @@ public partial class Trial : BaseFullDeleteAuditEntity
public bool IsTrialPACSConfirmed { get; set; }
[Comment("项目术语配置Json字符串")]
[StringLength(1000)]
public string TrialObjectNameConfigStr { get; set; }
[StringLength(2000)]
public List<TrialObjectNameConfig> TrialObjectNameList { get; set; }
[NotMapped]
public List<TrialObjectNameConfig> TrialObjectNameList => JsonConvert.DeserializeObject<List<TrialObjectNameConfig>>(TrialObjectNameConfigStr) ?? new List<TrialObjectNameConfig>();
//[NotMapped]
//public List<TrialObjectNameConfig> TrialObjectNameList => JsonConvert.DeserializeObject<List<TrialObjectNameConfig>>(TrialObjectNameConfigStr) ?? new List<TrialObjectNameConfig>();
}
public class TrialObjectNameConfig
public struct TrialObjectNameConfig
{
public string Name { get; set; }

View File

@ -69,6 +69,12 @@ public class IRaCISDBContext : DbContext
v => string.IsNullOrEmpty(v) ? null : JsonConvert.DeserializeObject<List<TestJsonObject>>(v));
});
modelBuilder.Entity<Trial>(entity =>
{
entity.Property(e => e.TrialObjectNameList).HasConversion(v => v == null ? "[]" : JsonConvert.SerializeObject(v),
v => string.IsNullOrEmpty(v) ? null : JsonConvert.DeserializeObject<List<TrialObjectNameConfig>>(v));
});
#region pgsql codefirst 配置 暂时屏蔽
//if (base.Database.IsNpgsql())
//{

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,44 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace IRaCIS.Core.Infra.EFCore.Migrations
{
/// <inheritdoc />
public partial class TrialJson : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "TrialObjectNameConfigStr",
table: "Trial");
migrationBuilder.AddColumn<string>(
name: "TrialObjectNameList",
table: "Trial",
type: "nvarchar(2000)",
maxLength: 2000,
nullable: false,
defaultValue: "",
comment: "项目术语配置Json字符串");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "TrialObjectNameList",
table: "Trial");
migrationBuilder.AddColumn<string>(
name: "TrialObjectNameConfigStr",
table: "Trial",
type: "nvarchar(1000)",
maxLength: 1000,
nullable: false,
defaultValue: "",
comment: "项目术语配置Json字符串");
}
}
}

View File

@ -10407,10 +10407,10 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
b.Property<DateTime?>("TrialFinishedTime")
.HasColumnType("datetime2");
b.Property<string>("TrialObjectNameConfigStr")
b.Property<string>("TrialObjectNameList")
.IsRequired()
.HasMaxLength(1000)
.HasColumnType("nvarchar(1000)")
.HasMaxLength(2000)
.HasColumnType("nvarchar(2000)")
.HasComment("项目术语配置Json字符串");
b.Property<string>("TrialStatusStr")