DKNet is an enterprise-grade .NET library collection focused on advanced EF Core extensions, dynamic predicate building, and the Specification pattern. It provides production-ready tools for building robust, type-safe, and testable data access layers, including dynamic LINQ support, LinqKit integration. Designed for modern cloud-native applications, DKNet enforces strict code quality, async best practices, and full documentation for all public APIs. Enterprise-grade .NET library suite for modern application development, featuring advanced EF Core extensions (dynamic predicates, specifications, LinqKit), robust Domain-Driven Design (DDD) patterns, and domain event support. DKNet empowers scalable, maintainable, and testable solutions with type-safe validation, async/await, XML documentation, and high code quality standards. Ideal for cloud-native, microservices, and enterprise architectures.
$ dotnet add package DKNet.EfCore.AbstractionsWelcome to DKNet.EfCore.Abstraction! This project provides a convenient abstraction layer for EF Core, designed to streamline common tasks and enhance maintainability and testability in your applications.
This abstraction layer is built on top of EF Core, offering a set of helper classes that abstract away complex aspects of data access. It simplifies everyday operations, allowing developers to focus on business logic while handling entity configuration, repository patterns, and caching seamlessly.
Our goal is to make working with EF Core more efficient and less error-prone. The abstraction layer ensures that your code remains clean, easy to understand, and straightforward to maintain.
Integrate the abstraction layer into your application by using the provided repository classes. Here's an example snippet:
using DKNet.EfCore.Abstraction;
public class MyEntity : EntityBase<MyEntity>
{
// Define entity properties and configurations in derived classes
}
public class MyRepository<T> : Repository<T, MyContext>
{
public async Task<T> GetById(int id)
{
return await _repository.GetByIdAsync(id);
}
}
using DKNet.EfCore.Abstraction;
// Initialize the context with your EF Core configuration
var dbContext = new MyDbContext();
dbContext.Configure();
// Use the repository to perform operations
var repo = new MyRepository<MyEntity>(dbContext);
// Create an entity and save changes
MyEntity entity = new()
{
Name = "John"
};
repo.AddAsync(entity);
await dbContext.SaveChangesAsync();Contributions are welcome! Here's how you can help:
Please follow our Code of Conduct and ensure your contributions are in line with the project's scope.