EasyPersistence is a high-performance, modular extension for Entity Framework Core, providing advanced repository and unit of work patterns, fuzzy search with 3-gram algorithm, and SQL CLR integration. Designed for scalable, maintainable, and testable .NET data layers, it follows modern C# and Microsoft coding standards, with comprehensive XML documentation and NuGet-ready modularity.
- Repository & Unit of Work Patterns: Clean abstractions for data access
- Fuzzy Search: Advanced search capabilities for EF Core with 3-gram algorithm
- SQL CLR Integration: Efficient search via SQL CLR functions
- High Performance: Optimized for critical paths, minimal overhead
- Modular Design: Use only the components you need
Explore a complete, working sample demonstrating repository/unit-of-work, fuzzy search, and configuration:
To use EasyPersistence.EFCore in your project, you can install it via NuGet:
dotnet add package ZeidLab.ToolBox.EasyPersistence.EFCoreFor more information, please visit EasyPersistence Package on NuGet.
| Component | Description |
|---|---|
IAggregateRoot |
Marker for aggregate root entities in the domain model |
IDomainEvent |
Marker for domain events in DDD |
IRepositoryBase |
Generic repository interface for entity data access |
IUnitOfWork |
Unit of work contract for managing transactions and saving |
EntityBase<TId> |
Base class for entities with typed ID and value-based equality |
PagedResult<T> |
Represents a paged result set with items and total count |
PropertyScore |
Represents the score of a property in fuzzy search/comparison |
ScoredRecord<TEntity> |
Entity with fuzzy search score and per-property scores |
UnitOfWorkBase<TContext> |
Base implementation of IUnitOfWork for EF Core DbContext |
RepositoryBase<TEntity,TEntityId> |
Base implementation of IRepositoryBase using EF Core |
With each release, we add new features and fix bugs. You can find the full changelog at EasyPersistence Releases.
For more information and detailed usage instructions, please refer to the EasyPersistence Documentation.
Star this repository and follow me on GitHub to stay informed about new releases and updates. Your support fuels this project's growth!
If my content adds value to your projects, consider supporting me via crypto.
- Bitcoin: bc1qlfljm9mysdtu064z5cf4yq4ddxgdfztgvghw3w
- USDT(TRC20): TJFME9tAnwdnhmqGHDDG5yCs617kyQDV39
Thank you for being part of this community—let’s build smarter, together
Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests.
- Fork the repository
- Create a new branch for your feature or bugfix
- Commit your changes following the project guidelines
- Push your branch and submit a pull request
This project is licensed under the MIT License. See the LICENSE file for details.