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