Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,10 @@
<ProjectReference Include="..\DataArc.EntityFrameworkCore.Demo.Persistence\DataArc.EntityFrameworkCore.Demo.Persistence.csproj" />
</ItemGroup>

<ItemGroup>
<None Update="appsettings.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,10 @@
using DataArc.Core;
using DataArc.EntityFrameworkCore.Demo.Persistence;
using DataArc.EntityFrameworkCore.Demo.Persistence.Database.Creator;
using DataArc.EntityFrameworkCore.Demo.Persistence.Database.DBContexts;
using DataArc.EntityFrameworkCore.Demo.Persistence.Database.DBModels;
using DataArc.EntityFrameworkCore.Demo.Persistence.Utils;
using DataArc.EntityFrameworkCore.Demo.Persistence.Contracts;
using Microsoft.Extensions.Configuration;

namespace DataArc.EntityFrameworkCore.Demo.Benchmark
{
Expand All @@ -38,14 +39,19 @@ public class RawEmployeeBulkDataBenchmark
[Params(62_500, 125_000, 250_000)]
public int RecordCount { get; set; }

[Params(62_500)]
public int BulkBatchSize { get; set; }
//[Params(62_500)]
public int BulkBatchSize => MaxRecordCount;

[GlobalSetup]
public void GlobalSetup()
{
var configurationManager = new ConfigurationManager();
configurationManager
.AddJsonFile("appsettings.json", optional: false)
.Build();

_serviceProvider = new ServiceCollection()
.AddPersistence()
.AddPersistence(configurationManager)
.BuildServiceProvider();

_databaseCreators =
Expand Down
8 changes: 8 additions & 0 deletions DataArc.EntityFrameworkCore.Demo.Benchmark/appsettings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"ConnectionStrings": {
"FinanceDb": "Server=.;Database=FinanceDb;Integrated Security=true;TrustServerCertificate=True;",
"HrDb": "Server=.;Database=HrDb;Integrated Security=true;TrustServerCertificate=True;",
"ItDb": "Server=.;Database=ItDb;Integrated Security=true;TrustServerCertificate=True;",
"OperationsDb": "Server=.;Database=OperationsDb;Integrated Security=true;TrustServerCertificate=True;"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
using DataArc.Core;
using DataArc.EntityFrameworkCore.Demo.Persistence.Database.DBModels;
using Microsoft.EntityFrameworkCore;

namespace DataArc.EntityFrameworkCore.Demo.Persistence.Contracts
{
public interface IFinanceDbContext : IExecutionContext
{
DbSet<Employer>? Employer { get; set; }
DbSet<Employee>? Employee { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
using DataArc.Core;
using DataArc.EntityFrameworkCore.Demo.Persistence.Database.DBModels;
using Microsoft.EntityFrameworkCore;

namespace DataArc.EntityFrameworkCore.Demo.Persistence.Contracts
{
public interface IHrDbContext : IExecutionContext
{
DbSet<Employer>? Employer { get; set; }
DbSet<Employee>? Employee { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
using DataArc.Core;
using DataArc.EntityFrameworkCore.Demo.Persistence.Database.DBModels;
using Microsoft.EntityFrameworkCore;

namespace DataArc.EntityFrameworkCore.Demo.Persistence.Contracts
{
public interface IItDbContext : IExecutionContext
{
DbSet<Employer>? Employer { get; set; }
DbSet<Employee>? Employee { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
using DataArc.Core;
using DataArc.EntityFrameworkCore.Demo.Persistence.Database.DBModels;
using Microsoft.EntityFrameworkCore;

namespace DataArc.EntityFrameworkCore.Demo.Persistence.Contracts
{
public interface IOperationsDbContext : IExecutionContext
{
DbSet<Employer>? Employer { get; set; }
DbSet<Employee>? Employee { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
using DataArc.Core;
using DataArc.EntityFrameworkCore.Demo.Persistence.Contracts;
using DataArc.EntityFrameworkCore.Demo.Persistence.Database.DBModels;
using Microsoft.EntityFrameworkCore;

namespace DataArc.EntityFrameworkCore.Demo.Persistence.Database.DBContexts
{
public interface IFinanceDbContext : IExecutionContext
{

}

internal class FinanceDbContext : DbContext, IFinanceDbContext
{
public FinanceDbContext(DbContextOptions<FinanceDbContext> dbContextOptions)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
using DataArc.Core;
using DataArc.EntityFrameworkCore.Demo.Persistence.Contracts;
using DataArc.EntityFrameworkCore.Demo.Persistence.Database.DBModels;
using Microsoft.EntityFrameworkCore;

namespace DataArc.EntityFrameworkCore.Demo.Persistence.Database.DBContexts
{
public interface IHrDbContext : IExecutionContext
{
}

internal class HrDbContext : DbContext, IHrDbContext
{
public HrDbContext(DbContextOptions<HrDbContext> dbContextOptions)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
using DataArc.Core;
using DataArc.EntityFrameworkCore.Demo.Persistence.Contracts;
using DataArc.EntityFrameworkCore.Demo.Persistence.Database.DBModels;
using Microsoft.EntityFrameworkCore;

namespace DataArc.EntityFrameworkCore.Demo.Persistence.Database.DBContexts
{
public interface IItDbContext : IExecutionContext
{
}

internal class ItDbContext : DbContext, IItDbContext
{
public ItDbContext(DbContextOptions<ItDbContext> dbContextOptions) : base(dbContextOptions) { }
public ItDbContext(DbContextOptions<ItDbContext> dbContextOptions)
: base(dbContextOptions) { }

public DbSet<Employer>? Employer { get; set; }
public DbSet<Employee>? Employee { get; set; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
using DataArc.Core;
using DataArc.EntityFrameworkCore.Demo.Persistence.Contracts;
using DataArc.EntityFrameworkCore.Demo.Persistence.Database.DBModels;
using Microsoft.EntityFrameworkCore;

namespace DataArc.EntityFrameworkCore.Demo.Persistence.Database.DBContexts
{
public interface IOperationsDbContext : IExecutionContext
{
}

internal class OperationsDbContext : DbContext, IOperationsDbContext
{
public OperationsDbContext(DbContextOptions<OperationsDbContext> dbContextOptions) : base(dbContextOptions) { }
public OperationsDbContext(DbContextOptions<OperationsDbContext> dbContextOptions)
: base(dbContextOptions) { }

public DbSet<Employer>? Employer { get; set; }
public DbSet<Employee>? Employee { get; set; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
using DataArc.Core;
using DataArc.EntityFrameworkCore.Demo.Persistence.Database.Creator;
using DataArc.EntityFrameworkCore.Demo.Persistence.Database.DBContexts;
using DataArc.EntityFrameworkCore.Demo.Persistence.Database.Seeder;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.Logging;

using DataArc.Core;
using DataArc.EntityFrameworkCore.Demo.Persistence.Contracts;
using DataArc.EntityFrameworkCore.Demo.Persistence.Database.Creator;
using DataArc.EntityFrameworkCore.Demo.Persistence.Database.DBContexts;
using DataArc.EntityFrameworkCore.Demo.Persistence.Database.Seeder;

namespace DataArc.EntityFrameworkCore.Demo.Persistence
{
public static class PersistenceRegistration
Expand All @@ -17,12 +19,8 @@ public static class PersistenceRegistration
builder.AddConsole();
});

public static IServiceCollection AddPersistence(this IServiceCollection services)
public static IServiceCollection AddPersistence(this IServiceCollection services, ConfigurationManager configurationManager)
{
var configurationManager = new ConfigurationManager();
configurationManager.AddJsonFile("appsettings.json", optional: false)
.Build();

services
.AddDataArcCore()
.ConfigureDataArc(provider =>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using DataArc.Core;

using DataArc.EntityFrameworkCore.Demo.Application.Modules.Finance.Features.SalaryAdjustments.Dtos;
using DataArc.EntityFrameworkCore.Demo.Persistence.Database.DBContexts;
using DataArc.EntityFrameworkCore.Demo.Persistence.Contracts;
using DataArc.EntityFrameworkCore.Demo.Persistence.Database.DBModels;

namespace DataArc.EntityFrameworkCore.Demo.Application.Modules.Finance.Features.SalaryAdjustments.Services
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
using DataArc.Core;

using DataArc.EntityFrameworkCore.Demo.Persistence.Database.DBContexts;
using DataArc.EntityFrameworkCore.Demo.Persistence.Contracts;
using DataArc.EntityFrameworkCore.Demo.Persistence.Database.DBModels;

namespace DataArc.EntityFrameworkCore.Demo.Application.Modules.Finance.Features.SalaryAdjustments.Services
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
using DataArc.EntityFrameworkCore.Demo.Application.Modules.Finance.Features.SalaryAdjustments.Services;
using DataArc.EntityFrameworkCore.Demo.Persistence;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;

namespace DataArc.EntityFrameworkCore.Demo.Application.Modules.Finance.Registration
{
public static class FinanceRegistrationModule
{
public static IServiceCollection AddFinanceModule(this IServiceCollection services)
public static IServiceCollection AddFinanceModule(this IServiceCollection services, ConfigurationManager configurationManager)
{
// Register persistence layer for Finance module
services.AddPersistence();
services.AddPersistence(configurationManager);
// Register Services
services.AddScoped<ISalaryAdjustmentService, SalaryAdjustmentService>();
services.AddScoped<IEmployeePerformanceService, EmployeePerformanceService>();
Expand Down
8 changes: 7 additions & 1 deletion DataArc.EntityFrameworkCore.Demo/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,21 @@
using DataArc.EntityFrameworkCore.Demo.Application.Workers;
using DataArc.EntityFrameworkCore.Demo.Persistence.Database.Creator;
using DataArc.EntityFrameworkCore.Demo.Persistence.Database.Seeder;
using Microsoft.Extensions.Configuration;

const int batchSize = 100_000;

var host = Host
.CreateDefaultBuilder(args)
.ConfigureServices(services =>
{
var configurationManager = new ConfigurationManager();
configurationManager
.AddJsonFile("appsettings.json", optional: false)
.Build();

services
.AddFinanceModule()
.AddFinanceModule(configurationManager)
.AddHostedService<DemoWorkflowWorker>();
})
.Build();
Expand Down
Loading
Loading