Browse Source

Added AbpEntityFrameworkCoreModule and IDbContextProvider

pull/81/head
Halil İbrahim Kalkan 9 years ago
parent
commit
6cc86a87c6
  1. 3
      src/AbpDesk/AbpDesk.EntityFrameworkCore/AbpDesk/EntityFrameworkCore/AbpDeskEntityFrameworkCoreModule.cs
  2. 16
      src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpEntityFrameworkCoreModule.cs
  3. 20
      src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Repositories/EntityFrameworkCore/DefaultDbContextProvider.cs
  4. 10
      src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Repositories/EntityFrameworkCore/EfCoreRepository.cs
  5. 10
      src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Repositories/EntityFrameworkCore/IDbContextProvider.cs
  6. 17
      src/Volo.Abp/Volo/Abp/Data/IConnectionInfoResolver.cs

3
src/AbpDesk/AbpDesk.EntityFrameworkCore/AbpDesk/EntityFrameworkCore/AbpDeskEntityFrameworkCoreModule.cs

@ -1,9 +1,10 @@
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.EntityFrameworkCore;
using Volo.Abp.Modularity;
namespace AbpDesk.EntityFrameworkCore
{
[DependsOn(typeof(AbpDeskDomainModule))]
[DependsOn(typeof(AbpDeskDomainModule), typeof(AbpEntityFrameworkCoreModule))]
public class AbpDeskEntityFrameworkCoreModule : AbpModule
{
public override void ConfigureServices(IServiceCollection services)

16
src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpEntityFrameworkCoreModule.cs

@ -0,0 +1,16 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Volo.Abp.Modularity;
using Volo.Abp.Repositories.EntityFrameworkCore;
namespace Volo.Abp.EntityFrameworkCore
{
public class AbpEntityFrameworkCoreModule : AbpModule
{
public override void ConfigureServices(IServiceCollection services)
{
//TODO: This will be changed!
services.TryAddTransient(typeof(IDbContextProvider<>), typeof(DefaultDbContextProvider<>));
}
}
}

20
src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Repositories/EntityFrameworkCore/DefaultDbContextProvider.cs

@ -0,0 +1,20 @@
using Volo.Abp.EntityFrameworkCore;
namespace Volo.Abp.Repositories.EntityFrameworkCore
{
public class DefaultDbContextProvider<TDbContext> : IDbContextProvider<TDbContext>
where TDbContext : AbpDbContext<TDbContext>
{
private readonly TDbContext _dbContext;
public DefaultDbContextProvider(TDbContext dbContext)
{
_dbContext = dbContext;
}
public TDbContext GetDbContext()
{
return _dbContext;
}
}
}

10
src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Repositories/EntityFrameworkCore/EfCoreRepository.cs

@ -12,15 +12,17 @@ namespace Volo.Abp.Repositories.EntityFrameworkCore
where TDbContext : AbpDbContext<TDbContext>
where TEntity : class, IEntity<TPrimaryKey>
{
public virtual TDbContext DbContext { get; }
public virtual TDbContext DbContext => _dbContextProvider.GetDbContext();
public virtual DbSet<TEntity> DbSet => DbContext.Set<TEntity>();
DbContext IEfCoreRepository.DbContext => DbContext;
public EfCoreRepository(TDbContext dbContext)
private readonly IDbContextProvider<TDbContext> _dbContextProvider;
public EfCoreRepository(IDbContextProvider<TDbContext> dbContextProvider)
{
DbContext = dbContext;
_dbContextProvider = dbContextProvider;
}
protected override IQueryable<TEntity> GetQueryable()

10
src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Repositories/EntityFrameworkCore/IDbContextProvider.cs

@ -0,0 +1,10 @@
using Volo.Abp.EntityFrameworkCore;
namespace Volo.Abp.Repositories.EntityFrameworkCore
{
public interface IDbContextProvider<out TDbContext>
where TDbContext : AbpDbContext<TDbContext>
{
TDbContext GetDbContext();
}
}

17
src/Volo.Abp/Volo/Abp/Data/IConnectionInfoResolver.cs

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Volo.Abp.Data
{
public interface IConnectionInfoResolver
{
ConnectionInfo Resolve();
}
public class ConnectionInfo
{
public string ConnectionString { get; set; }
}
}
Loading…
Cancel
Save