软删除配置调整
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
2a217c1a20
commit
a74b264f39
|
@ -173,27 +173,29 @@ public class IRaCISDBContext : DbContext
|
|||
{
|
||||
|
||||
if (navigation.IsCollection) continue;
|
||||
|
||||
#region 有问题
|
||||
// 比如 e.SourceSubjectVisit.IsDeleted == False 还会导致 dicom 查询增加额外很多的连表 因为访视 项目 项目中心,dicom 都是软删除
|
||||
//
|
||||
//// 配置基于导航属性的软删除查询筛选器
|
||||
//if (typeof(ISoftDelete).IsAssignableFrom(navigation.TargetEntityType.ClrType))
|
||||
//{
|
||||
// var clrType = entityType.ClrType;
|
||||
// var targetType = navigation.TargetEntityType.ClrType;
|
||||
|
||||
#region 有问题
|
||||
// 配置基于导航属性的软删除查询筛选器
|
||||
if (typeof(ISoftDelete).IsAssignableFrom(navigation.TargetEntityType.ClrType))
|
||||
{
|
||||
var clrType = entityType.ClrType;
|
||||
var targetType = navigation.TargetEntityType.ClrType;
|
||||
// //e => e.Subject.IsDeleted==false
|
||||
// var parameterNav = Expression.Parameter(clrType, "e");
|
||||
// var navigationProperty = Expression.Property(parameterNav, navigation.Name);
|
||||
// var navigationFilter = Expression.Equal(
|
||||
// Expression.Property(navigationProperty, nameof(ISoftDelete.IsDeleted)),
|
||||
// Expression.Constant(false));
|
||||
|
||||
//e => e.Subject.IsDeleted==false
|
||||
var parameterNav = Expression.Parameter(clrType, "e");
|
||||
var navigationProperty = Expression.Property(parameterNav, navigation.Name);
|
||||
var navigationFilter = Expression.Equal(
|
||||
Expression.Property(navigationProperty, nameof(ISoftDelete.IsDeleted)),
|
||||
Expression.Constant(false));
|
||||
// var filterNav = Expression.Lambda(navigationFilter, parameterNav);
|
||||
|
||||
var filterNav = Expression.Lambda(navigationFilter, parameterNav);
|
||||
// modelBuilder.Entity(clrType).HasQueryFilter(filterNav);
|
||||
|
||||
modelBuilder.Entity(clrType).HasQueryFilter(filterNav);
|
||||
|
||||
Console.WriteLine($"实体应用软删除:{entityType.ClrType.Name} 导航属性{filterNav}");
|
||||
}
|
||||
// Console.WriteLine($"实体应用软删除:{entityType.ClrType.Name} 导航属性{filterNav}");
|
||||
//}
|
||||
|
||||
#endregion
|
||||
|
||||
|
|
|
@ -13,6 +13,8 @@ public class DicomStudyConfigration : IEntityTypeConfiguration<DicomStudy>
|
|||
{
|
||||
builder.HasKey(e => e.SeqId);
|
||||
|
||||
//builder.HasMany(s => s.InstanceList).WithOne(se => se.DicomStudy).HasForeignKey(se => se.StudyId).HasPrincipalKey(st => st.Id);
|
||||
|
||||
builder.HasMany(s => s.SeriesList).WithOne(se => se.DicomStudy).HasForeignKey(se => se.StudyId).HasPrincipalKey(st => st.Id);
|
||||
|
||||
builder.HasMany(s => s.DicomStudyMonitorList).WithOne(sm => sm.DicomStudy).HasForeignKey(sm => sm.StudyId).HasPrincipalKey(se => se.Id);
|
||||
|
@ -40,6 +42,8 @@ public class DicomInstanceConfigration : IEntityTypeConfiguration<DicomInstance>
|
|||
{
|
||||
builder.HasKey(e => e.SeqId);
|
||||
|
||||
builder.HasOne(e => e.DicomStudy).WithMany().HasForeignKey(t=>t.StudyId).HasPrincipalKey(st => st.Id);
|
||||
|
||||
builder.HasMany(s => s.ReadingTableAnswerRowInfoList).WithOne(di => di.Instance).HasForeignKey(t => t.InstanceId).HasPrincipalKey(se => se.Id);
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue