Browse Source

Added database providers to the module template.

pull/395/head
Halil ibrahim Kalkan 8 years ago
parent
commit
5c86edb5f6
  1. 26
      templates/module/MyCompanyName.MyModuleName.sln
  2. 16
      templates/module/src/MyCompanyName.MyModuleName.EntityFrameworkCore/MyCompanyName.MyModuleName.EntityFrameworkCore.csproj
  3. 13
      templates/module/src/MyCompanyName.MyModuleName.EntityFrameworkCore/MyCompanyName/MyModuleName/EntityFrameworkCore/IMyModuleNameDbContext.cs
  4. 35
      templates/module/src/MyCompanyName.MyModuleName.EntityFrameworkCore/MyCompanyName/MyModuleName/EntityFrameworkCore/MyModuleNameDbContext.cs
  5. 38
      templates/module/src/MyCompanyName.MyModuleName.EntityFrameworkCore/MyCompanyName/MyModuleName/EntityFrameworkCore/MyModuleNameDbContextModelCreatingExtensions.cs
  6. 25
      templates/module/src/MyCompanyName.MyModuleName.EntityFrameworkCore/MyCompanyName/MyModuleName/EntityFrameworkCore/MyModuleNameEntityFrameworkCoreModule.cs
  7. 18
      templates/module/src/MyCompanyName.MyModuleName.EntityFrameworkCore/MyCompanyName/MyModuleName/EntityFrameworkCore/MyModuleNameModelBuilderConfigurationOptions.cs
  8. 15
      templates/module/src/MyCompanyName.MyModuleName.MongoDB/MyCompanyName.MyModuleName.MongoDB.csproj
  9. 20
      templates/module/src/MyCompanyName.MyModuleName.MongoDB/MyCompanyName/MyModuleName/MongoDB/AbpUsersMongoDbContextExtensions.cs
  10. 13
      templates/module/src/MyCompanyName.MyModuleName.MongoDB/MyCompanyName/MyModuleName/MongoDB/IMyModuleNameMongoDbContext.cs
  11. 21
      templates/module/src/MyCompanyName.MyModuleName.MongoDB/MyCompanyName/MyModuleName/MongoDB/MyModuleNameBsonClassMap.cs
  12. 25
      templates/module/src/MyCompanyName.MyModuleName.MongoDB/MyCompanyName/MyModuleName/MongoDB/MyModuleNameMongoDbContext.cs
  13. 27
      templates/module/src/MyCompanyName.MyModuleName.MongoDB/MyCompanyName/MyModuleName/MongoDB/MyModuleNameMongoDbModule.cs
  14. 14
      templates/module/src/MyCompanyName.MyModuleName.MongoDB/MyCompanyName/MyModuleName/MongoDB/MyModuleNameMongoModelBuilderConfigurationOptions.cs

26
templates/module/MyCompanyName.MyModuleName.sln

@ -11,6 +11,16 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyCompanyName.MyModuleName.
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyCompanyName.MyModuleName.Application", "src\MyCompanyName.MyModuleName.Application\MyCompanyName.MyModuleName.Application.csproj", "{78040F9E-3501-4A40-82DF-00A597710F35}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{649A3FFA-182F-4E56-9717-E6A9A2BEC545}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{E400416D-2895-4512-9D17-90681EEC7E0A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyCompanyName.MyModuleName.EntityFrameworkCore", "src\MyCompanyName.MyModuleName.EntityFrameworkCore\MyCompanyName.MyModuleName.EntityFrameworkCore.csproj", "{0CE86223-D31D-4315-A1F5-87BA3EE1B844}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyCompanyName.MyModuleName.MongoDB", "src\MyCompanyName.MyModuleName.MongoDB\MyCompanyName.MyModuleName.MongoDB.csproj", "{F1C58097-4C08-4D88-8976-6B3389391481}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -33,10 +43,26 @@ Global
{78040F9E-3501-4A40-82DF-00A597710F35}.Debug|Any CPU.Build.0 = Debug|Any CPU
{78040F9E-3501-4A40-82DF-00A597710F35}.Release|Any CPU.ActiveCfg = Release|Any CPU
{78040F9E-3501-4A40-82DF-00A597710F35}.Release|Any CPU.Build.0 = Release|Any CPU
{0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Release|Any CPU.Build.0 = Release|Any CPU
{F1C58097-4C08-4D88-8976-6B3389391481}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F1C58097-4C08-4D88-8976-6B3389391481}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F1C58097-4C08-4D88-8976-6B3389391481}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F1C58097-4C08-4D88-8976-6B3389391481}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{D64C1577-4929-4B60-939E-96DE1534891A} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
{F2840BC7-0188-4606-9126-DADD0F5ABF7A} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
{BD65D04F-08D5-40C1-8C24-77CA0BACB877} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
{78040F9E-3501-4A40-82DF-00A597710F35} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
{0CE86223-D31D-4315-A1F5-87BA3EE1B844} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
{F1C58097-4C08-4D88-8976-6B3389391481} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {4324B3B4-B60B-4E3C-91D8-59576B4E26DD}
EndGlobalSection

16
templates/module/src/MyCompanyName.MyModuleName.EntityFrameworkCore/MyCompanyName.MyModuleName.EntityFrameworkCore.csproj

@ -0,0 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="System.Linq.Dynamic.Core" Version="1.0.8.9" />
<ProjectReference Include="..\MyCompanyName.MyModuleName.Domain\MyCompanyName.MyModuleName.Domain.csproj" />
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.EntityFrameworkCore\Volo.Abp.EntityFrameworkCore.csproj" />
</ItemGroup>
</Project>

13
templates/module/src/MyCompanyName.MyModuleName.EntityFrameworkCore/MyCompanyName/MyModuleName/EntityFrameworkCore/IMyModuleNameDbContext.cs

@ -0,0 +1,13 @@
using Volo.Abp.Data;
using Volo.Abp.EntityFrameworkCore;
namespace MyCompanyName.MyModuleName.EntityFrameworkCore
{
[ConnectionStringName("MyModuleName")]
public interface IMyModuleNameDbContext : IEfCoreDbContext
{
/* Add DbSet for each Aggregate Root here. Example:
* DbSet<Question> Questions { get; }
*/
}
}

35
templates/module/src/MyCompanyName.MyModuleName.EntityFrameworkCore/MyCompanyName/MyModuleName/EntityFrameworkCore/MyModuleNameDbContext.cs

@ -0,0 +1,35 @@
using Microsoft.EntityFrameworkCore;
using Volo.Abp.Data;
using Volo.Abp.EntityFrameworkCore;
namespace MyCompanyName.MyModuleName.EntityFrameworkCore
{
[ConnectionStringName("MyModuleName")]
public class MyModuleNameDbContext : AbpDbContext<MyModuleNameDbContext>, IMyModuleNameDbContext
{
public static string TablePrefix { get; set; } = MyModuleNameConsts.DefaultDbTablePrefix;
public static string Schema { get; set; } = MyModuleNameConsts.DefaultDbSchema;
/* Add DbSet for each Aggregate Root here. Example:
* public DbSet<Question> Questions { get; set; }
*/
public MyModuleNameDbContext(DbContextOptions<MyModuleNameDbContext> options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.ConfigureMyModuleName(options =>
{
options.TablePrefix = TablePrefix;
options.Schema = Schema;
});
}
}
}

38
templates/module/src/MyCompanyName.MyModuleName.EntityFrameworkCore/MyCompanyName/MyModuleName/EntityFrameworkCore/MyModuleNameDbContextModelCreatingExtensions.cs

@ -0,0 +1,38 @@
using System;
using Microsoft.EntityFrameworkCore;
using Volo.Abp;
namespace MyCompanyName.MyModuleName.EntityFrameworkCore
{
public static class MyModuleNameDbContextModelCreatingExtensions
{
public static void ConfigureMyModuleName(
this ModelBuilder builder,
Action<MyModuleNameModelBuilderConfigurationOptions> optionsAction = null)
{
Check.NotNull(builder, nameof(builder));
var options = new MyModuleNameModelBuilderConfigurationOptions();
optionsAction?.Invoke(options);
/* Configure all entities here. Example:
builder.Entity<Question>(b =>
{
//Configure table & schema name
//b.ToTable(options.TablePrefix + "Questions", options.Schema);
//Properties
//b.Property(q => q.Title).IsRequired().HasMaxLength(QuestionConsts.MaxTitleLength);
//Configure relations
//b.HasMany(question => question.Tags).WithOne().HasForeignKey(qt => qt.QuestionId);
//Configure indexes
//b.HasIndex(q => q.CreationTime);
});
*/
}
}
}

25
templates/module/src/MyCompanyName.MyModuleName.EntityFrameworkCore/MyCompanyName/MyModuleName/EntityFrameworkCore/MyModuleNameEntityFrameworkCoreModule.cs

@ -0,0 +1,25 @@
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.EntityFrameworkCore;
using Volo.Abp.Modularity;
namespace MyCompanyName.MyModuleName.EntityFrameworkCore
{
[DependsOn(
typeof(MyModuleNameDomainModule),
typeof(AbpEntityFrameworkCoreModule)
)]
public class MyModuleNameEntityFrameworkCoreModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
context.Services.AddAbpDbContext<MyModuleNameDbContext>(options =>
{
/* Add custom repositories here. Example:
* options.AddRepository<Question, EfCoreQuestionRepository>();
*/
});
context.Services.AddAssemblyOf<MyModuleNameEntityFrameworkCoreModule>();
}
}
}

18
templates/module/src/MyCompanyName.MyModuleName.EntityFrameworkCore/MyCompanyName/MyModuleName/EntityFrameworkCore/MyModuleNameModelBuilderConfigurationOptions.cs

@ -0,0 +1,18 @@
using JetBrains.Annotations;
using Volo.Abp.EntityFrameworkCore.Modeling;
namespace MyCompanyName.MyModuleName.EntityFrameworkCore
{
public class MyModuleNameModelBuilderConfigurationOptions : ModelBuilderConfigurationOptions
{
public MyModuleNameModelBuilderConfigurationOptions(
[NotNull] string tablePrefix = MyModuleNameConsts.DefaultDbTablePrefix,
[CanBeNull] string schema = MyModuleNameConsts.DefaultDbSchema)
: base(
tablePrefix,
schema)
{
}
}
}

15
templates/module/src/MyCompanyName.MyModuleName.MongoDB/MyCompanyName.MyModuleName.MongoDB.csproj

@ -0,0 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\MyCompanyName.MyModuleName.Domain\MyCompanyName.MyModuleName.Domain.csproj" />
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.MongoDB\Volo.Abp.MongoDB.csproj" />
</ItemGroup>
</Project>

20
templates/module/src/MyCompanyName.MyModuleName.MongoDB/MyCompanyName/MyModuleName/MongoDB/AbpUsersMongoDbContextExtensions.cs

@ -0,0 +1,20 @@
using System;
using Volo.Abp;
using Volo.Abp.MongoDB;
namespace MyCompanyName.MyModuleName.MongoDB
{
public static class AbpUsersMongoDbContextExtensions
{
public static void ConfigureMyModuleName(
this IMongoModelBuilder builder,
Action<MongoModelBuilderConfigurationOptions> optionsAction = null)
{
Check.NotNull(builder, nameof(builder));
var options = new MyModuleNameMongoModelBuilderConfigurationOptions();
optionsAction?.Invoke(options);
}
}
}

13
templates/module/src/MyCompanyName.MyModuleName.MongoDB/MyCompanyName/MyModuleName/MongoDB/IMyModuleNameMongoDbContext.cs

@ -0,0 +1,13 @@
using Volo.Abp.Data;
using Volo.Abp.MongoDB;
namespace MyCompanyName.MyModuleName.MongoDB
{
[ConnectionStringName("MyModuleName")]
public interface IMyModuleNameMongoDbContext : IAbpMongoDbContext
{
/* Define mongo collections here. Example:
* IMongoCollection<Question> Questions { get; }
*/
}
}

21
templates/module/src/MyCompanyName.MyModuleName.MongoDB/MyCompanyName/MyModuleName/MongoDB/MyModuleNameBsonClassMap.cs

@ -0,0 +1,21 @@
using Volo.Abp.Threading;
namespace MyCompanyName.MyModuleName.MongoDB
{
public static class MyModuleNameBsonClassMap
{
private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner();
public static void Configure()
{
OneTimeRunner.Run(() =>
{
//Register mappings here. Example:
//BsonClassMap.RegisterClassMap<Question>(map =>
//{
// map.AutoMap();
//});
});
}
}
}

25
templates/module/src/MyCompanyName.MyModuleName.MongoDB/MyCompanyName/MyModuleName/MongoDB/MyModuleNameMongoDbContext.cs

@ -0,0 +1,25 @@
using Volo.Abp.Data;
using Volo.Abp.MongoDB;
namespace MyCompanyName.MyModuleName.MongoDB
{
[ConnectionStringName("MyModuleName")]
public class MyModuleNameMongoDbContext : AbpMongoDbContext, IMyModuleNameMongoDbContext
{
public static string CollectionPrefix { get; set; } = MyModuleNameConsts.DefaultDbTablePrefix;
/* Add mongo collections here. Example:
* public IMongoCollection<Question> Questions => Collection<Question>();
*/
protected override void CreateModel(IMongoModelBuilder modelBuilder)
{
base.CreateModel(modelBuilder);
modelBuilder.ConfigureMyModuleName(options =>
{
options.CollectionPrefix = CollectionPrefix;
});
}
}
}

27
templates/module/src/MyCompanyName.MyModuleName.MongoDB/MyCompanyName/MyModuleName/MongoDB/MyModuleNameMongoDbModule.cs

@ -0,0 +1,27 @@
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Modularity;
using Volo.Abp.MongoDB;
namespace MyCompanyName.MyModuleName.MongoDB
{
[DependsOn(
typeof(MyModuleNameDomainModule),
typeof(AbpMongoDbModule)
)]
public class MyModuleNameMongoDbModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
MyModuleNameBsonClassMap.Configure();
context.Services.AddMongoDbContext<MyModuleNameMongoDbContext>(options =>
{
/* Add custom repositories here. Example:
* options.AddRepository<Question, MongoQuestionRepository>();
*/
});
context.Services.AddAssemblyOf<MyModuleNameMongoDbModule>();
}
}
}

14
templates/module/src/MyCompanyName.MyModuleName.MongoDB/MyCompanyName/MyModuleName/MongoDB/MyModuleNameMongoModelBuilderConfigurationOptions.cs

@ -0,0 +1,14 @@
using JetBrains.Annotations;
using Volo.Abp.MongoDB;
namespace MyCompanyName.MyModuleName.MongoDB
{
public class MyModuleNameMongoModelBuilderConfigurationOptions : MongoModelBuilderConfigurationOptions
{
public MyModuleNameMongoModelBuilderConfigurationOptions(
[NotNull] string tablePrefix = MyModuleNameConsts.DefaultDbTablePrefix)
: base(tablePrefix)
{
}
}
}
Loading…
Cancel
Save