DRN.Framework.EntityFramework
0.2.2-preview002
Prefix Reserved
See the version list below for details.
dotnet add package DRN.Framework.EntityFramework --version 0.2.2-preview002
NuGet\Install-Package DRN.Framework.EntityFramework -Version 0.2.2-preview002
<PackageReference Include="DRN.Framework.EntityFramework" Version="0.2.2-preview002" />
paket add DRN.Framework.EntityFramework --version 0.2.2-preview002
#r "nuget: DRN.Framework.EntityFramework, 0.2.2-preview002"
// Install DRN.Framework.EntityFramework as a Cake Addin #addin nuget:?package=DRN.Framework.EntityFramework&version=0.2.2-preview002&prerelease // Install DRN.Framework.EntityFramework as a Cake Tool #tool nuget:?package=DRN.Framework.EntityFramework&version=0.2.2-preview002&prerelease
DRN.Framework.EntityFramework provides DrnContext with conventions to develop rapid and effective domain models.
DRNContext
DrnContext has following unique features:
- Implements
IDesignTimeDbContextFactory
to enable migrations from dbContext defining projects. - Implements
IDesignTimeServices
to support multi context projects with default output directories in the context specific folder. - Uses
HasDrnContextServiceCollectionModule
attribute for automatic registration with AddServicesWithAttributes service collection extension method. - Uses context name (typeof(TContext).Name) as connection string key by convention.
- Automatically applies
IEntityTypeConfiguration
implementations from the assembly whose namespace contains the derived context's namespace. - Automatically marks Entities derived from
DRN.Framework.SharedKernel.Domain.Entity
as created, modified or deleted. - Enables
DRN.Framework.Testing
to create easy and effective integration tests with conventions and automatic registrations.- Application modules can be registered without any modification to
TestContext
TestContext
'sContainerContext
- creates a
postgresql container
then scans TestContext's service collection for inherited DrnContexts. - Adds a connection strings to TestContext's configuration for each
DrnContext
according to convention.
- creates a
TestContext
acts as a ServiceProvider and when a service is requested it can build it from service collection with all dependencies.
- Application modules can be registered without any modification to
namespace DRN.Framework.EntityFramework.Context;
[HasDrnContextServiceCollectionModule]
public abstract class DrnContext<TContext> : DbContext, IDesignTimeDbContextFactory<TContext>, IDesignTimeServices where TContext : DbContext, new()
{
...
public class HasDrnContextServiceCollectionModuleAttribute : HasServiceCollectionModuleAttribute
{
static HasDrnContextServiceCollectionModuleAttribute()
{
ModuleMethodInfo = typeof(ServiceCollectionExtensions).GetMethod(nameof(ServiceCollectionExtensions.AddDbContextsWithConventions))!;
}
}
Example Usage
namespace Sample.Infra;
public static class InfraModule
{
public static IServiceCollection AddSampleInfraServices(this IServiceCollection sc)
{
sc.AddServicesWithAttributes();
return sc;
}
}
public class QAContext : DrnContext<QAContext>
{
public QAContext(DbContextOptions<QAContext> options) : base(options)
{
}
public QAContext() : base(null)
{
}
public DbSet<User> Users { get; set; }
public DbSet<Question> Questions { get; set; }
public DbSet<Answer> Answers { get; set; }
public DbSet<QuestionComment> Comments { get; set; }
public DbSet<Category> Categories { get; set; }
public DbSet<Tag> Tags { get; set; }
}
Global Usings
global using DRN.Framework.EntityFramework.Context;
global using Microsoft.EntityFrameworkCore;
global using DRN.Framework.Utils.DependencyInjection;
Commit Info
Author: Duran Serkan KILIÇ
Date: 2024-01-19 00:39:49 +0300
Hash: 9ed2ad070a2da35c57e2741172e1abd7070f38cf
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
-
net8.0
- DRN.Framework.Utils (>= 0.2.2-preview002)
- EFCore.NamingConventions (>= 8.0.2)
- Microsoft.EntityFrameworkCore.Tools (>= 8.0.1)
- Npgsql.EntityFrameworkCore.PostgreSQL (>= 8.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on DRN.Framework.EntityFramework:
Package | Downloads |
---|---|
DRN.Framework.Testing
DRN.Framework.Testing package encapsulates testing dependencies and provides practical, effective helpers such as resourceful data attributes and test context. This package enables a new encouraging testing technique called as DTT(Duran's Testing Technique). With DTT, any developer can write clean and hassle-free unit and integration tests without complexity. ## Commit Info Author: Duran Serkan KILIÇ Date: 2025-03-23 12:44:05 +0300 Hash: 2de70c28af18b89ba624448e2cc80072695d983a |
GitHub repositories
This package is not used by any popular GitHub repositories.
Not every version includes changes, features or bug fixes. This project can increment version to keep consistency with other DRN.Framework projects.
## Version 0.2.0
### Breaking Changes
### New Features
* DrnContext added
* Implemented IDesignTimeDbContextFactory to enable migrations from dbContext defining projects.
* Implemented IDesignTimeServices to support multi context projects with default output directory in the context specific folder.
* Uses HasDrnContextServiceCollectionModule to automatic registration with AddServicesWithAttributes service collection extension method.
* Uses context name (typeof(TContext).Name) as connection string key by convention.
* Enables DRN.Framework.Testing to create easy and effective integration tests with conventions and automatic registrations.
### Bug Fixes
## Commit Info
Author: Duran Serkan KILIÇ
Date: 2024-01-19 00:39:49 +0300
Hash: 9ed2ad070a2da35c57e2741172e1abd7070f38cf