- Notifications
You must be signed in to change notification settings - Fork0
Librería para utilizar Entity Framework para el acceso a datos
NotificationsYou must be signed in to change notification settings
kitpymes/template-netcore-entityframework
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Librería para utilizar Entity Framework para el acceso a datos
Visual Studio >= 2019
NET TargetFramework >= net5.0
Net Core SDK >= 5.0.100
C# >= 9.0
Conocimientos sobre Inyección de Dependencias
Se puede instalar usando el administrador de paquetes Nuget o CLI dotnet.
Nuget
Install-Package Kitpymes.Core.EntityFramework
CLI dotnet
dotnet add package Kitpymes.Core.EntityFramework
publicstaticclassDependencyInjection{publicstaticIServiceCollectionLoadDatabase<TDbContext>(thisIServiceCollectionservices)whereTDbContext:EntityFrameworkDbContext{}publicstaticIServiceCollectionLoadDatabase<TIDbContext,TDbContext>(thisIServiceCollectionservices)whereTIDbContext:classwhereTDbContext:EntityFrameworkDbContext,TIDbContext{}publicstaticTDbContextLoadSqlServer<TDbContext>(thisIServiceCollectionservices,SqlServerSettings?sqlServerSettings)whereTDbContext:EntityFrameworkDbContext{}publicstaticTDbContextLoadSqlServer<TDbContext>(thisIServiceCollectionservices,Action<SqlServerOptions>sqlServerOptions)whereTDbContext:EntityFrameworkDbContext{}publicstaticTDbContextLoadSqlServer<TDbContext,TUnitOfWork>(thisIServiceCollectionservices,Action<SqlServerOptions>sqlServerOptions)whereTDbContext:EntityFrameworkDbContextwhereTUnitOfWork:EntityFrameworkUnitOfWork<TDbContext>{}publicstaticTDbContextLoadSqlServer<TDbContext,TUnitOfWork>(thisIServiceCollectionservices,SqlServerSettingssqlServerSettings)whereTDbContext:EntityFrameworkDbContextwhereTUnitOfWork:EntityFrameworkUnitOfWork<TDbContext>{}publicstaticTDbContextLoadInMemoryDatabase<TDbContext>(thisIServiceCollectionservices,Action<InMemoryDbContextOptionsBuilder>?inMemoryDbContextOptions=null,string?databaseName=null)whereTDbContext:DbContext{}publicstaticTDbContextLoadContext<TDbContext>(thisIServiceCollectionservices,Action<EntityFrameworkOptions>entityFrameworkOptions)whereTDbContext:DbContext{}publicstaticTDbContextLoadContext<TDbContext>(thisIServiceCollectionservices,EntityFrameworkSettingsentityFrameworkSettings)whereTDbContext:DbContext{}}
publicstaticclassChangeTrackerExtensions{publicstaticDbContextWithChangeTracker<TUserId>(thisDbContextcontext,TUserId?userId,boolenabled=true){}}
publicstaticclassConfigurationsExtensions{publicstaticModelBuilderWithEntitiesConfigurations(thisModelBuildermodelBuilder,Assemblyassembly,boolenabled=true){}}
publicstaticclassGetEntityTypesExtensions{publicstaticIEnumerable<Type>GetEntityTypes(thisModelBuildermodelBuilder,Func<IMutableEntityType,bool>predicate){}publicstaticIEnumerable<Type>GetEntityTypes<TType>(thisModelBuildermodelBuilder){}}
publicstaticclassGlobalFiltersExtensions{publicstaticModelBuilderWithTenantFilter(thisModelBuildermodelBuilder,boolenabled=true){}publicstaticModelBuilderWithActiveFilter(thisModelBuildermodelBuilder,boolenabled=true){}publicstaticModelBuilderWithDeleteFilter(thisModelBuildermodelBuilder,boolenabled=true){}publicstaticvoidWithFilter<TInterface>(thisModelBuildermodelBuilder,Expression<Func<TInterface,bool>>expression){}}
publicstaticclassLoggerExtensions{publicstaticDbContextWithConsoleLogSaveChanges(thisDbContextcontext,boolenabled=true){}internalstaticDbContextOptionsBuilderWithLogger(thisDbContextOptionsBuilderoptions,IServiceCollectionservices,boolenabled=true){}}
publicstaticclassOptimizedContextExtensions{publicstaticDbContextWithOptimizedContext(thisDbContextcontext,boolenabled=true){}}
publicstaticclassQueryableExtensions{publicstaticIQueryable<T>ToQueryable<T>(thisDbContextcontext)whereT:class{}publicstaticIQueryable<T>ToInclude<T>(thisIQueryable<T>queryable,Expression<Func<T,object>>[]includes)whereT:class{}}
publicstaticclassShadowPropertiesExtensions{publicstaticModelBuilderWithShadowProperties<TUser,TUserId>(thisModelBuildermodelBuilder,boolenabled=true)whereTUser:IEntityBase{}}
publicabstractclassEntityFrameworkConverter{publicstaticValueConverter<TEnum,string>ToEnumName<TEnum,TValue>(){}publicstaticValueConverter<TEnum,TValue>ToEnumValue<TEnum,TValue>(){}publicstaticValueConverter<StatusEnum,string>ToStatus(){}publicstaticValueConverter<Email,string>ToEmail<TEnum>(){}publicstaticValueConverter<Name,string>ToName<TEnum>(){}publicstaticValueConverter<Subdomain,string>ToSubdomain<TEnum>(){}}
publicclassDatabaseSettings{publicstring?DbProvider{get;set;}publicSqlServerSettings?SqlServerSettings{get;set;}}
publicclassEntityFrameworkOptions{publicEntityFrameworkSettingsEntityFrameworkSettings{get;privateset;}=newEntityFrameworkSettings();publicEntityFrameworkOptionsWithDbContextOptions(Action<DbContextOptionsBuilder>dbContextOptionsBuilder){}publicEntityFrameworkOptionsWithEnsuredCreated(boolenabled=true){}publicEntityFrameworkOptionsWithMigrateEnabled(boolenabled=true){}publicEntityFrameworkOptionsWithEnsuredDeleted(boolenabled=true){}}
publicclassEntityFrameworkSettings{publicAction<DbContextOptionsBuilder>?DbContextOptionsBuilder{get;set;}publicbool?IsEnsuredCreatedEnabled{get;set;}=false;publicbool?IsEnsuredDeletedEnabled{get;set;}=false;publicbool?IsMigrateEnabled{get;set;}=false;}
publicclassSqlServerOptions:EntityFrameworkOptions{publicSqlServerSettingsSqlServerSettings{get;privateset;}=newSqlServerSettings(); #region EntityFrameworkOptionspublicvirtualEntityFrameworkOptionsWithOptions(Action<DbContextOptionsBuilder>dbContextOptionsBuilder){} #region EntityFrameworkOptionspublicSqlServerOptionsWithConnectionString(stringconnectionString){}publicSqlServerOptionsWithSqlServerDbContextOptions(Action<SqlServerDbContextOptionsBuilder>sqlServerDbContextOptions){}publicnewSqlServerOptionsWithCreate(boolenabled=true){}publicnewSqlServerOptionsWithMigrate(boolenabled=true){}publicnewSqlServerOptionsWithDelete(boolenabled=true){}publicnewSqlServerOptionsWithLogErrors(boolenabled=SqlServerSettings.DefaultLogErrors){}}
publicclassSqlServerSettings:EntityFrameworkSettings{ #region EntityFrameworkSettingspublicbool?Enabled{get;set;}publicbool?Create{get;set;}publicbool?Migrate{get;set;}publicbool?Delete{get;set;}[JsonIgnore]publicbool?LogErrors{get;set;}[JsonIgnore]publicAction<DbContextOptionsBuilder>?DbContextOptions{get;set;} #endregion EntityFrameworkSettingspublicstring?Connection{get;set;}[JsonIgnore]publicAction<SqlServerDbContextOptionsBuilder>?SqlServerOptions{get;set;}}
publicinterfaceIEntityFrameworkUnitOfWork{IDbContextTransactionTransaction{get;}voidOpenTransaction(IsolationLevelisolationLevel=IsolationLevel.ReadCommitted);TaskOpenTransactionAsync(IsolationLevelisolationLevel=IsolationLevel.ReadCommitted);voidSaveChanges();TaskSaveChangesAsync(CancellationTokencancellationToken=default);}
publicabstractclassEntityFrameworkUnitOfWork<TDbContext>:IEntityFrameworkUnitOfWorkwhereTDbContext:DbContext{publicEntityFrameworkUnitOfWork(TDbContextcontext){}publicIDbContextTransactionTransaction{get;}publicvirtualvoidOpenTransaction(IsolationLevelisolationLevel=IsolationLevel.ReadCommitted){}publicvirtualasyncTaskOpenTransactionAsync(IsolationLevelisolationLevel=IsolationLevel.ReadCommitted){}publicvirtualvoidSave(booluseChangeTracker=true){}publicvirtualasyncTaskSaveAsync(booluseChangeTracker=true){}}
publicinterfaceIEntityFrameworkDbContext{EntityEntry<TEntity>Entry<TEntity>(TEntityentity)whereTEntity:class;voidSaveChanges();TaskSaveChangesAsync(CancellationTokencancellationToken=default);voidSaveChangesWithTransaction(IsolationLevelisolationLevel=IsolationLevel.ReadCommitted);TaskSaveChangesWithTransactionAsync(IsolationLevelisolationLevel=IsolationLevel.ReadCommitted,CancellationTokencancellationToken=default);}
publicclassEntityFrameworkRepository<T>:IRelationalRepository<T>whereT:class{publicEntityFrameworkRepository(DbContextcontext){}publicIQueryable<T>Query{}publicTGetOne(Expression<Func<T,bool>>where){}publicasyncTask<T>GetOneAsync(Expression<Func<T,bool>>where){}publicTGetOne(Expression<Func<T,bool>>where,paramsExpression<Func<T,object>>[]includes){}publicasyncTask<T>GetOneAsync(Expression<Func<T,bool>>where,paramsExpression<Func<T,object>>[]includes){}publicTResultGetOne<TResult>(Expression<Func<T,TResult>>select,Expression<Func<T,bool>>?where=null,paramsExpression<Func<T,object>>[]includes){}publicasyncTask<TResult>GetOneAsync<TResult>(Expression<Func<T,TResult>>select,Expression<Func<T,bool>>?where=null,paramsExpression<Func<T,object>>[]includes){}publicIEnumerable<T>GetAll(){}publicasyncTask<IEnumerable<T>>GetAllAsync(){}publicIEnumerable<T>GetAll(Expression<Func<T,bool>>where){}publicasyncTask<IEnumerable<T>>GetAllAsync(Expression<Func<T,bool>>where){}publicIEnumerable<T>GetAll(Expression<Func<T,bool>>where,paramsExpression<Func<T,object>>[]includes){}publicasyncTask<IEnumerable<T>>GetAllAsync(Expression<Func<T,bool>>where,paramsExpression<Func<T,object>>[]includes){}publicIEnumerable<TResult>GetAll<TResult>(Expression<Func<T,TResult>>select,Expression<Func<T,bool>>?where=null,paramsExpression<Func<T,object>>[]includes){}publicasyncTask<IEnumerable<TResult>>GetAllAsync<TResult>(Expression<Func<T,TResult>>select,Expression<Func<T,bool>>?where=null,paramsExpression<Func<T,object>>[]includes){}publicIEnumerable<T>GetPaged(stringproperty,Action<PagedOptions>options){}publicTask<IEnumerable<T>>GetPagedAsync(stringproperty,Action<PagedOptions>options){}publicIEnumerable<T>GetPaged(stringproperty,Action<PagedOptions>?options=null,Expression<Func<T,bool>>?where=null,paramsExpression<Func<T,object>>[]includes){}publicasyncTask<IEnumerable<T>>GetPagedAsync(stringproperty,Action<PagedOptions>?options=null,Expression<Func<T,bool>>?where=null,paramsExpression<Func<T,object>>[]includes){}publicIEnumerable<TResult>GetPaged<TResult>(stringproperty,Expression<Func<T,TResult>>select,Action<PagedOptions>?options=null,Expression<Func<T,bool>>?where=null,paramsExpression<Func<T,object>>[]includes){}publicasyncTask<IEnumerable<TResult>>GetPagedAsync<TResult>(stringproperty,Expression<Func<T,TResult>>select,Action<PagedOptions>?options=null,Expression<Func<T,bool>>?where=null,paramsExpression<Func<T,object>>[]includes){}publicTFind(objectkey){}publicasyncTask<T>FindAsync(objectkey){}publicvoidAdd(Titem){}publicasyncTaskAddAsync(Titem){}publicvoidAddRange(IEnumerable<T>items){}publicTaskAddRangeAsync(IEnumerable<T>items){}publicvoidUpdate(objectkey,Titem){}publicTaskUpdateAsync(objectkey,Titem){}publicvoidUpdatePartial(objectkey,objectitem){}publicTaskUpdatePartialAsync(objectkey,objectitem){}publicvoidDelete(objectkey){}publicvoidDelete(Expression<Func<T,bool>>where){}publicTaskDeleteAsync(objectkey){}publicTaskDeleteAsync(Expression<Func<T,bool>>where){}publicboolAny(){}publicboolAny(Expression<Func<T,bool>>where){}publicTask<bool>AnyAsync(){}publicTask<bool>AnyAsync(Expression<Func<T,bool>>where){}publiclongCount(){}publiclongCount(Expression<Func<T,bool>>where){}publicTask<long>CountAsync(){}publicTask<long>CountAsync(Expression<Func<T,bool>>where){}}
Cada proyecto tiene su respectivo test, se ejecutan desde el "Explorador de pruebas"
- NET Core - Framework de trabajo
- C# - Lenguaje de programación
- Inserción de dependencias - Patrón de diseño de software
- MSTest - Pruebas unitarias
- Nuget - Manejador de dependencias
- Visual Studio - Entorno de programacion
- Sebastian R Ferrari -Trabajo Inicial -kitpymes
- Este proyecto está bajo la LicenciaLICENSE
- Este proyecto fue diseñado para compartir, creemos que es la mejor forma de ayudar 📢
- Cada persona que contribuya sera invitada a tomar una 🍺
- Gracias a todos! 🤓
Kitpymes 😊
About
Librería para utilizar Entity Framework para el acceso a datos
Topics
Resources
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
No releases published
Packages0
No packages published