diff --git a/KSFramework.sln b/KSFramework.sln
index a31a944..b4f681c 100644
--- a/KSFramework.sln
+++ b/KSFramework.sln
@@ -21,6 +21,22 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KSFramework.UnitTests", "te
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KSFramework.IntegrationTests", "tests\KSFramework\KSFramework.IntegrationTests\KSFramework.IntegrationTests.csproj", "{C990672B-5ECD-4123-AF33-1F5CE23318E9}"
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "BlogApp", "BlogApp", "{DD70F02F-714E-4A29-9588-D7BA800E9790}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Project.Common", "Samples\BlogApp\Project.Common\Project.Common.csproj", "{90969277-3688-4FFF-B8A1-6FF6550F5C30}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Project.Domain", "Samples\BlogApp\Project.Domain\Project.Domain.csproj", "{FFDAFEB1-EE22-4E77-9AD3-47C66106AC13}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Project.Infrastructure", "Samples\BlogApp\Project.Infrastructure\Project.Infrastructure.csproj", "{99E04439-2ED6-46CB-9EF0-0461B1A0C92D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Project.Application", "Samples\BlogApp\Project.Application\Project.Application.csproj", "{FC95DCAE-4498-4E09-9E0F-47352D61F159}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Project.Presentation", "Samples\BlogApp\Project.Presentation\Project.Presentation.csproj", "{AA9078CC-722C-4418-8238-07CADF6E42F5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Project.ClientApp", "Samples\BlogApp\Project.ClientApp\Project.ClientApp.csproj", "{59581660-C406-486E-9921-BF9103661A6C}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Project.WebApi", "Samples\BlogApp\Project.WebApi\Project.WebApi.csproj", "{754CFD8D-46B4-4BDD-B304-2DF8B5E280F5}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -79,6 +95,90 @@ Global
{C990672B-5ECD-4123-AF33-1F5CE23318E9}.Release|x64.Build.0 = Release|Any CPU
{C990672B-5ECD-4123-AF33-1F5CE23318E9}.Release|x86.ActiveCfg = Release|Any CPU
{C990672B-5ECD-4123-AF33-1F5CE23318E9}.Release|x86.Build.0 = Release|Any CPU
+ {90969277-3688-4FFF-B8A1-6FF6550F5C30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {90969277-3688-4FFF-B8A1-6FF6550F5C30}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {90969277-3688-4FFF-B8A1-6FF6550F5C30}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {90969277-3688-4FFF-B8A1-6FF6550F5C30}.Debug|x64.Build.0 = Debug|Any CPU
+ {90969277-3688-4FFF-B8A1-6FF6550F5C30}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {90969277-3688-4FFF-B8A1-6FF6550F5C30}.Debug|x86.Build.0 = Debug|Any CPU
+ {90969277-3688-4FFF-B8A1-6FF6550F5C30}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {90969277-3688-4FFF-B8A1-6FF6550F5C30}.Release|Any CPU.Build.0 = Release|Any CPU
+ {90969277-3688-4FFF-B8A1-6FF6550F5C30}.Release|x64.ActiveCfg = Release|Any CPU
+ {90969277-3688-4FFF-B8A1-6FF6550F5C30}.Release|x64.Build.0 = Release|Any CPU
+ {90969277-3688-4FFF-B8A1-6FF6550F5C30}.Release|x86.ActiveCfg = Release|Any CPU
+ {90969277-3688-4FFF-B8A1-6FF6550F5C30}.Release|x86.Build.0 = Release|Any CPU
+ {FFDAFEB1-EE22-4E77-9AD3-47C66106AC13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FFDAFEB1-EE22-4E77-9AD3-47C66106AC13}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FFDAFEB1-EE22-4E77-9AD3-47C66106AC13}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {FFDAFEB1-EE22-4E77-9AD3-47C66106AC13}.Debug|x64.Build.0 = Debug|Any CPU
+ {FFDAFEB1-EE22-4E77-9AD3-47C66106AC13}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {FFDAFEB1-EE22-4E77-9AD3-47C66106AC13}.Debug|x86.Build.0 = Debug|Any CPU
+ {FFDAFEB1-EE22-4E77-9AD3-47C66106AC13}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FFDAFEB1-EE22-4E77-9AD3-47C66106AC13}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FFDAFEB1-EE22-4E77-9AD3-47C66106AC13}.Release|x64.ActiveCfg = Release|Any CPU
+ {FFDAFEB1-EE22-4E77-9AD3-47C66106AC13}.Release|x64.Build.0 = Release|Any CPU
+ {FFDAFEB1-EE22-4E77-9AD3-47C66106AC13}.Release|x86.ActiveCfg = Release|Any CPU
+ {FFDAFEB1-EE22-4E77-9AD3-47C66106AC13}.Release|x86.Build.0 = Release|Any CPU
+ {99E04439-2ED6-46CB-9EF0-0461B1A0C92D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {99E04439-2ED6-46CB-9EF0-0461B1A0C92D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {99E04439-2ED6-46CB-9EF0-0461B1A0C92D}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {99E04439-2ED6-46CB-9EF0-0461B1A0C92D}.Debug|x64.Build.0 = Debug|Any CPU
+ {99E04439-2ED6-46CB-9EF0-0461B1A0C92D}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {99E04439-2ED6-46CB-9EF0-0461B1A0C92D}.Debug|x86.Build.0 = Debug|Any CPU
+ {99E04439-2ED6-46CB-9EF0-0461B1A0C92D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {99E04439-2ED6-46CB-9EF0-0461B1A0C92D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {99E04439-2ED6-46CB-9EF0-0461B1A0C92D}.Release|x64.ActiveCfg = Release|Any CPU
+ {99E04439-2ED6-46CB-9EF0-0461B1A0C92D}.Release|x64.Build.0 = Release|Any CPU
+ {99E04439-2ED6-46CB-9EF0-0461B1A0C92D}.Release|x86.ActiveCfg = Release|Any CPU
+ {99E04439-2ED6-46CB-9EF0-0461B1A0C92D}.Release|x86.Build.0 = Release|Any CPU
+ {FC95DCAE-4498-4E09-9E0F-47352D61F159}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FC95DCAE-4498-4E09-9E0F-47352D61F159}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FC95DCAE-4498-4E09-9E0F-47352D61F159}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {FC95DCAE-4498-4E09-9E0F-47352D61F159}.Debug|x64.Build.0 = Debug|Any CPU
+ {FC95DCAE-4498-4E09-9E0F-47352D61F159}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {FC95DCAE-4498-4E09-9E0F-47352D61F159}.Debug|x86.Build.0 = Debug|Any CPU
+ {FC95DCAE-4498-4E09-9E0F-47352D61F159}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FC95DCAE-4498-4E09-9E0F-47352D61F159}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FC95DCAE-4498-4E09-9E0F-47352D61F159}.Release|x64.ActiveCfg = Release|Any CPU
+ {FC95DCAE-4498-4E09-9E0F-47352D61F159}.Release|x64.Build.0 = Release|Any CPU
+ {FC95DCAE-4498-4E09-9E0F-47352D61F159}.Release|x86.ActiveCfg = Release|Any CPU
+ {FC95DCAE-4498-4E09-9E0F-47352D61F159}.Release|x86.Build.0 = Release|Any CPU
+ {AA9078CC-722C-4418-8238-07CADF6E42F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {AA9078CC-722C-4418-8238-07CADF6E42F5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {AA9078CC-722C-4418-8238-07CADF6E42F5}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {AA9078CC-722C-4418-8238-07CADF6E42F5}.Debug|x64.Build.0 = Debug|Any CPU
+ {AA9078CC-722C-4418-8238-07CADF6E42F5}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {AA9078CC-722C-4418-8238-07CADF6E42F5}.Debug|x86.Build.0 = Debug|Any CPU
+ {AA9078CC-722C-4418-8238-07CADF6E42F5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {AA9078CC-722C-4418-8238-07CADF6E42F5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {AA9078CC-722C-4418-8238-07CADF6E42F5}.Release|x64.ActiveCfg = Release|Any CPU
+ {AA9078CC-722C-4418-8238-07CADF6E42F5}.Release|x64.Build.0 = Release|Any CPU
+ {AA9078CC-722C-4418-8238-07CADF6E42F5}.Release|x86.ActiveCfg = Release|Any CPU
+ {AA9078CC-722C-4418-8238-07CADF6E42F5}.Release|x86.Build.0 = Release|Any CPU
+ {59581660-C406-486E-9921-BF9103661A6C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {59581660-C406-486E-9921-BF9103661A6C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {59581660-C406-486E-9921-BF9103661A6C}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {59581660-C406-486E-9921-BF9103661A6C}.Debug|x64.Build.0 = Debug|Any CPU
+ {59581660-C406-486E-9921-BF9103661A6C}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {59581660-C406-486E-9921-BF9103661A6C}.Debug|x86.Build.0 = Debug|Any CPU
+ {59581660-C406-486E-9921-BF9103661A6C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {59581660-C406-486E-9921-BF9103661A6C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {59581660-C406-486E-9921-BF9103661A6C}.Release|x64.ActiveCfg = Release|Any CPU
+ {59581660-C406-486E-9921-BF9103661A6C}.Release|x64.Build.0 = Release|Any CPU
+ {59581660-C406-486E-9921-BF9103661A6C}.Release|x86.ActiveCfg = Release|Any CPU
+ {59581660-C406-486E-9921-BF9103661A6C}.Release|x86.Build.0 = Release|Any CPU
+ {754CFD8D-46B4-4BDD-B304-2DF8B5E280F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {754CFD8D-46B4-4BDD-B304-2DF8B5E280F5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {754CFD8D-46B4-4BDD-B304-2DF8B5E280F5}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {754CFD8D-46B4-4BDD-B304-2DF8B5E280F5}.Debug|x64.Build.0 = Debug|Any CPU
+ {754CFD8D-46B4-4BDD-B304-2DF8B5E280F5}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {754CFD8D-46B4-4BDD-B304-2DF8B5E280F5}.Debug|x86.Build.0 = Debug|Any CPU
+ {754CFD8D-46B4-4BDD-B304-2DF8B5E280F5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {754CFD8D-46B4-4BDD-B304-2DF8B5E280F5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {754CFD8D-46B4-4BDD-B304-2DF8B5E280F5}.Release|x64.ActiveCfg = Release|Any CPU
+ {754CFD8D-46B4-4BDD-B304-2DF8B5E280F5}.Release|x64.Build.0 = Release|Any CPU
+ {754CFD8D-46B4-4BDD-B304-2DF8B5E280F5}.Release|x86.ActiveCfg = Release|Any CPU
+ {754CFD8D-46B4-4BDD-B304-2DF8B5E280F5}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -90,5 +190,13 @@ Global
{6F746C7E-99E8-D040-B792-CDA2514E83CE} = {0AB3BF05-4346-4AA6-1389-037BE0695223}
{48D1B7B2-D99B-4554-BBFB-95E75720B8E5} = {6F746C7E-99E8-D040-B792-CDA2514E83CE}
{C990672B-5ECD-4123-AF33-1F5CE23318E9} = {6F746C7E-99E8-D040-B792-CDA2514E83CE}
+ {DD70F02F-714E-4A29-9588-D7BA800E9790} = {5D20AA90-6969-D8BD-9DCD-8634F4692FDA}
+ {90969277-3688-4FFF-B8A1-6FF6550F5C30} = {DD70F02F-714E-4A29-9588-D7BA800E9790}
+ {FFDAFEB1-EE22-4E77-9AD3-47C66106AC13} = {DD70F02F-714E-4A29-9588-D7BA800E9790}
+ {99E04439-2ED6-46CB-9EF0-0461B1A0C92D} = {DD70F02F-714E-4A29-9588-D7BA800E9790}
+ {FC95DCAE-4498-4E09-9E0F-47352D61F159} = {DD70F02F-714E-4A29-9588-D7BA800E9790}
+ {AA9078CC-722C-4418-8238-07CADF6E42F5} = {DD70F02F-714E-4A29-9588-D7BA800E9790}
+ {59581660-C406-486E-9921-BF9103661A6C} = {DD70F02F-714E-4A29-9588-D7BA800E9790}
+ {754CFD8D-46B4-4BDD-B304-2DF8B5E280F5} = {DD70F02F-714E-4A29-9588-D7BA800E9790}
EndGlobalSection
EndGlobal
diff --git a/Samples/BlogApp/Project.Application/DependencyInjection.cs b/Samples/BlogApp/Project.Application/DependencyInjection.cs
index 902436b..73dce64 100644
--- a/Samples/BlogApp/Project.Application/DependencyInjection.cs
+++ b/Samples/BlogApp/Project.Application/DependencyInjection.cs
@@ -8,7 +8,7 @@ public static class DependencyInjection
{
public static IServiceCollection RegisterApplication(this IServiceCollection services)
{
- services.AddKSMediator(Project.Application.AssemblyReference.Assembly);
+ services.AddKSFramework(Project.Application.AssemblyReference.Assembly);
return services;
}
diff --git a/src/KSFramework/GenericRepository/Repository.cs b/src/KSFramework/GenericRepository/Repository.cs
index 6e8f24f..f93607a 100644
--- a/src/KSFramework/GenericRepository/Repository.cs
+++ b/src/KSFramework/GenericRepository/Repository.cs
@@ -7,7 +7,7 @@ namespace KSFramework.GenericRepository;
/// Base class for EF Core repositories with reusable query helpers.
///
/// The entity type.
-public abstract class Repository where TEntity : class
+public class Repository where TEntity : class
{
///
/// Gets the EF DbContext instance.
@@ -23,7 +23,7 @@ public abstract class Repository where TEntity : class
/// Initializes a new instance of the class.
///
/// The EF DbContext.
- protected Repository(DbContext context)
+ public Repository(DbContext context)
{
Context = context;
DbSet = context.Set();