public async Task TestProjectCodeFirstConfig() { using var scope = ServiceProvider.CreateScope(); var fsql = ServiceProvider.GetService <IFreeSql <FsBuilder> >(); var config = new GeneratorModeConfig(); var reflection = scope.ServiceProvider.GetService <ReflectionHelper>(); var items = await reflection.GetAssembliesNameItems(); var assemblyItem = items.FirstOrDefault(x => x.Value.Equals(Assembly.GetAssembly(typeof(IKey <>)).FullName)); Assert.True(assemblyItem != null); var typeItem = await reflection.GetAbstractClass(assemblyItem.Value); var abstruct = typeItem.FirstOrDefault(x => x.Value == typeof(IKey <>).FullName); Assert.True(abstruct != null); var tables = scope.ServiceProvider .GetService <ReflectionHelper>(); var projectid = fsql.Insert <Project>().AppendData(new Project()).ExecuteIdentity(); config.EntitySource.EntityAssemblyName = null; config.EntitySource.EntityBaseName = abstruct.Value; config.PickType = PickType.Ignore; config.GeneratorMode = GeneratorMode.CodeFirst; config.Validate(); var id = fsql.Insert <GeneratorModeConfig>().AppendData(config).ExecuteIdentity(); fsql.Delete <Project>().Where(x => x.Id == projectid).ExecuteAffrows(); Assert.True(id > 0); fsql.Delete <GeneratorModeConfig>().Where(x => x.Id == id); }
public async Task TestProjectDbFirstConfig() { using var scope = ServiceProvider.CreateScope(); var fsql = ServiceProvider.GetService <IFreeSql <FsBuilder> >(); var config = new GeneratorModeConfig(); config.EntitySource.EntityAssemblyName = null; var reflection = scope.ServiceProvider.GetService <ReflectionHelper>(); var items = await reflection.GetAssembliesNameItems(); var assemblyItem = items.FirstOrDefault(x => x.Value.Equals(Assembly.GetAssembly(typeof(IKey <>)).FullName)); var typeItem = await reflection.GetAbstractClass(assemblyItem.Value); var abstruct = typeItem.FirstOrDefault(x => x.Value == typeof(IKey <>).FullName); var projectid = fsql.Insert <Project>().AppendData(new Project()).ExecuteIdentity(); var datasourceId = fsql.Insert <DataSource>().AppendData(new DataSource { ConnectionString = "", DbType = DataType.Sqlite, Name = "" }).ExecuteIdentity(); config.GeneratorMode = GeneratorMode.DbFirst; config.DataSourceId = datasourceId; config.Validate(); var id = fsql.Insert <GeneratorModeConfig>().AppendData(config).ExecuteIdentity(); fsql.Delete <Project>().Where(x => x.Id == projectid).ExecuteAffrows(); Assert.True(id > 0); fsql.Delete <GeneratorModeConfig>().Where(x => x.Id == id); var aff = fsql.Delete <DataSource>().Where(x => x.Id == datasourceId).ExecuteAffrows(); Assert.True(aff > 0); }
/// <summary> /// 默认生成器实体源配置新增 /// </summary> public GeneratorModeConfig DefaultGeneratorModeConfig(EntitySource es) { var config = _serviceProvider.GetService <IGeneratorConfigService>(); var defaultConfig = new GeneratorModeConfig() { Name = "DefaultConfig", PickType = PickType.Ignore, GeneratorMode = GeneratorMode.CodeFirst, EntitySourceId = es.Id }; return(config.AddGConfig(defaultConfig).Result); }
/// <summary> /// 新增配置 /// </summary> /// <param name="config"></param> /// <param name="autoSave"></param> /// <returns></returns> public async Task <GeneratorModeConfig> AddGConfig(GeneratorModeConfig config, bool autoSave = false) { if (config.GeneratorMode == GeneratorMode.DbFirst) { CheckConfig(config.DataSourceId); } else { CheckEntityConfig(config.EntitySourceId); } var res = await _configRepository.InsertAsync(config); if (autoSave) { UnitOfWork.Commit(); } return(res); }
/// <summary> /// 更新配置 Step2 /// </summary> /// <param name="config"></param> /// <param name="autoSave"></param> /// <returns></returns> public async Task <GeneratorModeConfig> UpdateConfig(GeneratorModeConfig config, bool autoSave = false) { if (config.GeneratorMode == GeneratorMode.DbFirst) { CheckConfig(config.DataSourceId); config.EntitySourceId = 0; } else { CheckEntityConfig(config.EntitySourceId); config.DataSourceId = 0; } await _configRepository.UpdateAsync(config); if (autoSave) { UnitOfWork.Commit(); } return(config); }
public async Task <IActionResult> UpdateConfig([FromBody] GeneratorModeConfig config) { return(Success(await ConfigService.UpdateConfig(config, true))); }