Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Librería para utilizar Entity Framework para el acceso a datos

NotificationsYou must be signed in to change notification settings

kitpymes/template-netcore-entityframework

Repository files navigation

Kitpymes.Core.EntityFramework

Librería para utilizar Entity Framework para el acceso a datos

Build StatusNuGet StatusNuGet DownloadLicense: MITSize RepoLast Commit

📋 Requerimientos

  • Visual Studio >= 2019

  • NET TargetFramework >= net5.0

  • Net Core SDK >= 5.0.100

  • C# >= 9.0

  • Conocimientos sobre Inyección de Dependencias

🔧 Instalación

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

⌨️ Código

Extensions

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{}}

Helpers

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>(){}}

Settings

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;}}

UnitOfWork

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){}}

DbContext

publicinterfaceIEntityFrameworkDbContext{EntityEntry<TEntity>Entry<TEntity>(TEntityentity)whereTEntity:class;voidSaveChanges();TaskSaveChangesAsync(CancellationTokencancellationToken=default);voidSaveChangesWithTransaction(IsolationLevelisolationLevel=IsolationLevel.ReadCommitted);TaskSaveChangesWithTransactionAsync(IsolationLevelisolationLevel=IsolationLevel.ReadCommitted,CancellationTokencancellationToken=default);}

Repository

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){}}

⚙️ Pruebas Unitarias

Cada proyecto tiene su respectivo test, se ejecutan desde el "Explorador de pruebas"

Tests

🛠️ Construido con

✒️ Autores

  • Sebastian R Ferrari -Trabajo Inicial -kitpymes

📄 Licencia

  • Este proyecto está bajo la LicenciaLICENSE

🎁 Gratitud

  • 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

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp