修改计算列
parent
fca6be727c
commit
6d5f73a415
|
@ -32,6 +32,7 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
|
|
||||||
public int TotalMillisecondsInterval { get; set; }
|
public int TotalMillisecondsInterval { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public DateTime UploadStartTime { get; set; }
|
public DateTime UploadStartTime { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@ using Microsoft.EntityFrameworkCore.ChangeTracking;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using EntityFramework.Exceptions.SqlServer;
|
using EntityFramework.Exceptions.SqlServer;
|
||||||
using IRaCIS.Core.Domain.Share;
|
using IRaCIS.Core.Domain.Share;
|
||||||
|
using IRaCIS.Core.Infra.EFCore.ValueGenerator;
|
||||||
using MassTransit;
|
using MassTransit;
|
||||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||||
using Microsoft.EntityFrameworkCore.Metadata;
|
using Microsoft.EntityFrameworkCore.Metadata;
|
||||||
|
@ -66,13 +67,12 @@ namespace IRaCIS.Core.Infra.EFCore
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||||
{
|
{
|
||||||
//modelBuilder.Entity<User>().Property(t => t.FullName) .HasDefaultValueSql("[LastName] + ' / ' + [FirstName]");
|
//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)
|
if (_userInfo.IsEn_Us)
|
||||||
{
|
{
|
||||||
modelBuilder.Entity<Dictionary>().Property(t => t.MappedValue).HasColumnName(nameof(Domain.Models.Dictionary.Value));
|
modelBuilder.Entity<Dictionary>().Property(t => t.MappedValue).HasColumnName(nameof(Domain.Models.Dictionary.Value));
|
||||||
|
|
|
@ -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.Domain.Models;
|
||||||
|
using IRaCIS.Core.Infra.EFCore.ValueGenerator;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||||
|
|
||||||
|
@ -17,6 +18,8 @@ namespace IRaCIS.Core.Infra.EFCore.EntityConfigration
|
||||||
//.HasForeignKey(s => new { s.TrialId, s.SiteId })
|
//.HasForeignKey(s => new { s.TrialId, s.SiteId })
|
||||||
//.HasPrincipalKey(c => new { c.TrialId, c.SiteId });
|
//.HasPrincipalKey(c => new { c.TrialId, c.SiteId });
|
||||||
|
|
||||||
|
builder.Property(e => e.TotalMillisecondsInterval).HasValueGenerator<UploadTotalMillisecondsInterval>().ValueGeneratedOnAdd();
|
||||||
|
|
||||||
|
|
||||||
builder
|
builder
|
||||||
.HasOne(s => s.TrialSite)
|
.HasOne(s => s.TrialSite)
|
||||||
|
|
Loading…
Reference in New Issue