added EFCore indicies

This commit is contained in:
David Peters 2021-03-08 11:25:21 -06:00 committed by Sipke Schoorstra
parent 1241a75d15
commit 0aa2f7d8b0
3 changed files with 42 additions and 2 deletions

View file

@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Text;
using Elsa.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace Elsa.Persistence.EntityFramework.Core.Configuration
{
public class BookmarkConfiguration : IEntityTypeConfiguration<Bookmark>
{
public void Configure(EntityTypeBuilder<Bookmark> builder)
{
builder.HasIndex(x => new { x.ActivityType, x.TenantId, x.Hash}).HasDatabaseName($"IX_{nameof(Bookmark)}_{nameof(Bookmark.ActivityType)}_{nameof(Bookmark.TenantId)}_{nameof(Bookmark.Hash)}");
builder.HasIndex(x => x.TenantId).HasDatabaseName($"IX_{nameof(Bookmark)}_{nameof(Bookmark.TenantId)}");
builder.HasIndex(x => x.Hash).HasDatabaseName($"IX_{nameof(Bookmark)}_{nameof(Bookmark.Hash)}");
builder.HasIndex(x => x.ActivityType).HasDatabaseName($"IX_{nameof(Bookmark)}_{nameof(Bookmark.ActivityType)}");
builder.HasIndex(x => x.ActivityId).HasDatabaseName($"IX_{nameof(Bookmark)}_{nameof(Bookmark.ActivityId)}");
builder.HasIndex(x => x.WorkflowInstanceId).HasDatabaseName($"IX_{nameof(Bookmark)}_{nameof(Bookmark.WorkflowInstanceId)}");
}
}
}

View file

@ -1,4 +1,4 @@
using Elsa.Models;
using Elsa.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
@ -14,6 +14,12 @@ namespace Elsa.Persistence.EntityFramework.Core.Configuration
builder.Ignore(x => x.CustomAttributes);
builder.Ignore(x => x.ContextOptions);
builder.Property<string>("Data");
builder.HasIndex(x => new {x.DefinitionId, x.Version}).HasDatabaseName($"IX_{nameof(WorkflowDefinition)}_{nameof(WorkflowDefinition.DefinitionId)}_{nameof(WorkflowDefinition.VersionId)}");
builder.HasIndex(x => x.TenantId).HasDatabaseName($"IX_{nameof(WorkflowDefinition)}_{nameof(WorkflowDefinition.TenantId)}");
builder.HasIndex(x => x.Version).HasDatabaseName($"IX_{nameof(WorkflowDefinition)}_{nameof(WorkflowDefinition.Version)}");
builder.HasIndex(x => x.Name).HasDatabaseName($"IX_{nameof(WorkflowDefinition)}_{nameof(WorkflowDefinition.Name)}");
builder.HasIndex(x => x.IsLatest).HasDatabaseName($"IX_{nameof(WorkflowDefinition)}_{nameof(WorkflowDefinition.IsLatest)}");
builder.HasIndex(x => x.IsPublished).HasDatabaseName($"IX_{nameof(WorkflowDefinition)}_{nameof(WorkflowDefinition.IsPublished)}");
}
}
}

View file

@ -1,4 +1,4 @@
using Elsa.Models;
using Elsa.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
@ -23,6 +23,18 @@ namespace Elsa.Persistence.EntityFramework.Core.Configuration
builder.Ignore(x => x.Variables);
builder.Ignore(x => x.CurrentActivity);
builder.Property<string>("Data");
builder.HasIndex(x => new { x.WorkflowStatus, x.DefinitionId, x.Version }).HasDatabaseName($"IX_{nameof(WorkflowInstance)}_{nameof(WorkflowInstance.WorkflowStatus)}_{nameof(WorkflowInstance.DefinitionId)}_{nameof(WorkflowInstance.Version)}");
builder.HasIndex(x => x.TenantId).HasDatabaseName($"IX_{nameof(WorkflowInstance)}_{nameof(WorkflowInstance.TenantId)}");
builder.HasIndex(x => x.DefinitionId).HasDatabaseName($"IX_{nameof(WorkflowInstance)}_{nameof(WorkflowInstance.DefinitionId)}");
builder.HasIndex(x => x.WorkflowStatus).HasDatabaseName($"IX_{nameof(WorkflowInstance)}_{nameof(WorkflowInstance.WorkflowStatus)}");
builder.HasIndex(x => x.CorrelationId).HasDatabaseName($"IX_{nameof(WorkflowInstance)}_{nameof(WorkflowInstance.CorrelationId)}");
builder.HasIndex(x => x.ContextType).HasDatabaseName($"IX_{nameof(WorkflowInstance)}_{nameof(WorkflowInstance.ContextType)}");
builder.HasIndex(x => x.ContextId).HasDatabaseName($"IX_{nameof(WorkflowInstance)}_{nameof(WorkflowInstance.ContextId)}");
builder.HasIndex(x => x.Name).HasDatabaseName($"IX_{nameof(WorkflowInstance)}_{nameof(WorkflowInstance.Name)}");
builder.HasIndex(x => x.CreatedAt).HasDatabaseName($"IX_{nameof(WorkflowInstance)}_{nameof(WorkflowInstance.CreatedAt)}");
builder.HasIndex(x => x.LastExecutedAt).HasDatabaseName($"IX_{nameof(WorkflowInstance)}_{nameof(WorkflowInstance.LastExecutedAt)}");
builder.HasIndex(x => x.FinishedAt).HasDatabaseName($"IX_{nameof(WorkflowInstance)}_{nameof(WorkflowInstance.FinishedAt)}");
builder.HasIndex(x => x.FaultedAt).HasDatabaseName($"IX_{nameof(WorkflowInstance)}_{nameof(WorkflowInstance.FaultedAt)}");
}
}
}