public class YourService
{
private readonly IRepository<test> TestRepository;
public YourService(IRepository<test> TestRepository)
{
this.TestRepository = TestRepository;
}
public void YourMethod()
{
this.TestRepository.Add(new ...);
}
}
public class YourService
{
private readonly IDatabaseService dataBaseService;
public YourService(IDatabaseService dataBaseService)
{
this.dataBaseService = dataBaseService;
}
public IDbConnection GetConnection()
{
this.dataBaseService.GetConnection();
}
public string GetPropValue()
{
return this.dataBaseService.DataBaseSettings.connectionString; // 返回链接字符串
return this.dataBaseService.DataBaseSettings.dbType; // 返回数据库类型
return this.dataBaseService.DataBaseSettings.mulitInsertBatchcount; // 返回批量插入 一批次数量
}
}
public class UserController
{
var database = new Repository<test>(new DatabaseService("your_connection_string_here",默认Mysql,默认20万));
database.add(new test{...});
}
using Autofac;
using JoreNoe;
using JoreNoe.DB.EntityFrameWork.Core.SqlServer;
namespace IntegratedPlatformSuppor.Repository
{
public class RepositoryModule : Module
{
protected override void Load(ContainerBuilder builder)
{
builder.RegisterType<IntegratedPlatformSupporRegister>().As<ICurrencyRegister>().InstancePerLifetimeScope();
builder.RegisterGeneric(typeof(Repository<,>)).As(typeof(IRepository<,>));
builder.RegisterType<UnitOfWork>().As<IUnitOfWork>().InstancePerLifetimeScope();
}
}
}
using JoreNoe;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using System;
namespace IntegratedPlatformSuppor.Repository
{
public class IntegratedPlatformSupporRegister : ICurrencyRegister, IDisposable
{
private DbContext _dbContext;
public IntegratedPlatformSupporRegister(IConfiguration Configuration)
{
this._dbContext = new IntegratedPlatformSupporDBContext { Configuration = Configuration };
}
public DbContext Dbcontext { get => this._dbContext; set { this._dbContext = value; } }
public void Dispose()
{
this._dbContext.Dispose();
}
}
}
using IntegratedPlatformSuppor.Domain.Entity;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
namespace IntegratedPlatformSuppor.Repository
{
public class IntegratedPlatformSupporDBContext : DbContext
{
public IntegratedPlatformSupporDBContext()
{
//this.Configuration = configuration;
//如果要访问的数据库存在,则不做操作,如果不存在,会自动创建所有数据表和模式
//Database.EnsureCreated();
}
/// <summary>
/// 配置
/// </summary>
public IConfiguration Configuration { set; get; }
/// <summary>
/// 用户
/// </summary>
public DbSet<User> Users { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!string.IsNullOrEmpty(this.Configuration.GetConnectionString("DbConnect")))
optionsBuilder.UseSqlServer(this.Configuration.GetConnectionString("DbConnect"));
else
optionsBuilder.UseSqlServer("Server=47.106.198.147;Database=IntegratedPlatformSuppor;Uid=sa;Password=JoreNoe123$%^");
base.OnConfiguring(optionsBuilder);
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Test>().HasQueryFilter(t => t.IsDelete == false);
modelBuilder.Entity<User>().HasQueryFilter(t => t.IsDelete == false);
modelBuilder.Entity<MeansCategory>().HasQueryFilter(d => !d.IsDelete); //.HasQueryFilter(t => t.IsDelete == false);
}
}
}
using Autofac.Extensions.DependencyInjection;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using System.IO;
namespace IntegratedPlatformSuppor.API
{
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseServiceProviderFactory(new AutofacServiceProviderFactory())
.ConfigureAppConfiguration((appConfiguration, builder) =>
{
builder
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("Configs/Redis.json", optional: false, reloadOnChange: true)
.AddJsonFile("Configs/Exceptionless.json", optional: false, reloadOnChange: true)
.AddJsonFile("Configs/WeChatOpenConfig.json", optional: false, reloadOnChange: true)
.AddEnvironmentVariables().Build();
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
webBuilder.UseUrls("http://*:5000");
});
}
}
public void ConfigureContainer(ContainerBuilder builder)
{
var config = new ConfigurationBuilder();
config.AddJsonFile("./Configs/Autofac.json");
builder.RegisterModule(new ConfigurationModule(config.Build()));
}
public class testDomainService :BaseRepository ,ItestDomainService
{
private readonly IRepository<Guid, Test> test;
public testDomainService(
IRepository<Guid, Test> test,
IUnitOfWork Unit):base(Unit)
{
this.test = test;
}
public TestValue k()
{
var xss = this.test.Single(Guid.NewGuid());
return null;
}
}
public void ConfigureServices(IServiceCollection services)
{
services.AddJoreNoeRedis("your_connection_string_here", "InstanceName",DefaultDB=0);
}
using JoreNoe.Cache.Redis;
public class RedisTest
{
private readonly JoreNoe.Cache.Redis.IRedisManager ReadisManager;
public RedisTest(JoreNoe.Cache.Redis.IRedisManager ReadisManager) {
this.ReadisManager = ReadisManager;
}
public void test()
{
this.ReadisManager.Add("Test", "test", JoreNoe.Cache.Redis.ExpireModel.LongCache);
Console.WriteLine(this.ReadisManager.Get("Test"));
}
}
using JoreNoe.Message;
public class test{
public void sendtest(){
// 首先注册
var EmailHelper = new EmailMessageAPI(发送者,SMTP地址,SMTP端口,密码(个人是授权码),是否开启SSL认证);
EmailHelper.Send(收件人,标题,主题内容,是否开启兼容HTML);
}
}
using JoreNoe.Extend;
public class test{
public void sendtest(){
/// <summary>
/// 可用枚举类型 默认 1
/// 类型1:IsOrDeny 是 否
/// 类型2:TrueOrFalse 真 假
/// 类型3:OnOrOff 开 关
/// 类型4:EnableOrDisable 启用 关闭
/// </summary>
var booltest = false;
var REsult = booltest.BooleanToString(AvailableType.IsOrDeny);
// 输出 否
}
}
// 直接使用方式
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<test, test1>();
cfg.CreateMap<test1, test>();
});
var mapper = new Mapper(config);
JoreNoe.Extend.JoreNoeObjectToObjectExtension.UseJoreNoeObjectToOBject(mapper);
var test = new test() {
name = "c",
age=123
};
var test1 = new test1();
// 将 test 数据 给 test1
var ment = test.Map(test1);
Console.ReadLine();
// NET 使用方式
// StartUp
public partial class Startup
{
protected void AddAutoMapper(IServiceCollection services)
{
services.TryAddSingleton<MapperConfigurationExpression>();
services.TryAddSingleton(serviceProvider =>
{
var mapperConfigurationExpression = serviceProvider.GetRequiredService<MapperConfigurationExpression>();
var instance = new MapperConfiguration(mapperConfigurationExpression);
instance.AssertConfigurationIsValid();
return instance;
});
services.TryAddSingleton(serviceProvider =>
{
var mapperConfiguration = serviceProvider.GetRequiredService<MapperConfiguration>();
return mapperConfiguration.CreateMapper();
});
}
public void UseAutoMapper(IApplicationBuilder applicationBuilder)
{
var config = applicationBuilder.ApplicationServices.GetRequiredService<MapperConfigurationExpression>();
//订单
config.CreateMap<OrderModel, Order>(MemberList.None);
config.CreateMap<Order, OrderValue>(MemberList.None);
//config.CreateMap<User, UserInfo>().ForMember(d => d.names, option => option.MapFrom(d => d.name)).ReverseMap();
}
// Program
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseServiceProviderFactory(new AutofacServiceProviderFactory())
.ConfigureAppConfiguration((appConfiguration, builder) =>
{
builder
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("Configs/Redis.json", optional: false, reloadOnChange: true)
.AddJsonFile("Configs/Exceptionless.json", optional: false, reloadOnChange: true)
.AddJsonFile("Configs/WeChatOpenConfig.json", optional: false, reloadOnChange: true)
.AddEnvironmentVariables().Build();
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
webBuilder.UseUrls("http://*:5000");
});
// StartUp Configure 中
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment() || env.IsProduction())
{
app.UseDeveloperExceptionPage();
app.UseSwagger();
app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "ZerroMovies.API v1"));
}
app.UseObjectToOBjectExtension();
}
// 在程序启动时设置容器工厂
AutofacResolver.SetContainerFactory(() => container);
// 在需要解析依赖项的地方使用 AutofacResolver
var service = AutofacResolver.Resolve<IMyService>();