修改计算列
parent
fca6be727c
commit
6d5f73a415
|
@ -32,6 +32,7 @@ namespace IRaCIS.Core.Domain.Models
|
|||
|
||||
public int TotalMillisecondsInterval { get; set; }
|
||||
|
||||
|
||||
public DateTime UploadStartTime { get; set; }
|
||||
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ using Microsoft.EntityFrameworkCore.ChangeTracking;
|
|||
using System.Reflection;
|
||||
using EntityFramework.Exceptions.SqlServer;
|
||||
using IRaCIS.Core.Domain.Share;
|
||||
using IRaCIS.Core.Infra.EFCore.ValueGenerator;
|
||||
using MassTransit;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
|
@ -66,13 +67,12 @@ namespace IRaCIS.Core.Infra.EFCore
|
|||
#endregion
|
||||
|
||||
|
||||
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
//modelBuilder.Entity<User>().Property(t => t.FullName) .HasDefaultValueSql("[LastName] + ' / ' + [FirstName]");
|
||||
|
||||
//code first must migration dbfirst must config in db
|
||||
modelBuilder.Entity<StudyMonitor>().Property(e => e.TotalMillisecondsInterval).HasComputedColumnSql("datediff(MS,UploadStartTime,UploadFinishedTime)");
|
||||
|
||||
if (_userInfo.IsEn_Us)
|
||||
{
|
||||
modelBuilder.Entity<Dictionary>().Property(t => t.MappedValue).HasColumnName(nameof(Domain.Models.Dictionary.Value));
|
||||
|
@ -350,7 +350,7 @@ namespace IRaCIS.Core.Infra.EFCore
|
|||
updateEntity1.UpdateUserId = _userInfo.Id;
|
||||
}
|
||||
|
||||
if(t.Entity is ISoftDelete updateEntity2)
|
||||
if (t.Entity is ISoftDelete updateEntity2)
|
||||
{
|
||||
if (updateEntity2.IsDeleted == true)
|
||||
{
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
using System;
|
||||
using IRaCIS.Core.Domain.Models;
|
||||
using Microsoft.EntityFrameworkCore.ChangeTracking;
|
||||
using Microsoft.EntityFrameworkCore.ValueGeneration;
|
||||
|
||||
namespace IRaCIS.Core.Infra.EFCore.ValueGenerator
|
||||
{
|
||||
public class UploadTotalMillisecondsInterval : ValueGenerator<int>
|
||||
{
|
||||
|
||||
//code first must migration dbfirst must config in db and also need config in code
|
||||
//modelBuilder.Entity<StudyMonitor>().Property(e => e.TotalMillisecondsInterval).HasComputedColumnSql("datediff(MS,UploadStartTime,UploadFinishedTime)");
|
||||
|
||||
//modelBuilder.Entity<StudyMonitor>().Property(e => e.TestInterval).ValueGeneratedOnAddOrUpdate().HasDefaultValueSql("datediff(MS,UploadStartTime,UploadFinishedTime)");
|
||||
|
||||
|
||||
public override int Next(EntityEntry entry)
|
||||
{
|
||||
if (entry.Entity is StudyMonitor entity)
|
||||
{
|
||||
return (entity.UploadFinishedTime - entity.UploadStartTime).Milliseconds;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new ArgumentException("ValueGenerator用在了不适合的实体");
|
||||
|
||||
}
|
||||
}
|
||||
public override bool GeneratesTemporaryValues => false;
|
||||
}
|
||||
}
|
|
@ -1,4 +1,5 @@
|
|||
using IRaCIS.Core.Domain.Models;
|
||||
using IRaCIS.Core.Infra.EFCore.ValueGenerator;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||
|
||||
|
@ -17,6 +18,8 @@ namespace IRaCIS.Core.Infra.EFCore.EntityConfigration
|
|||
//.HasForeignKey(s => new { s.TrialId, s.SiteId })
|
||||
//.HasPrincipalKey(c => new { c.TrialId, c.SiteId });
|
||||
|
||||
builder.Property(e => e.TotalMillisecondsInterval).HasValueGenerator<UploadTotalMillisecondsInterval>().ValueGeneratedOnAdd();
|
||||
|
||||
|
||||
builder
|
||||
.HasOne(s => s.TrialSite)
|
||||
|
|
Loading…
Reference in New Issue