public override ScaffoldedModel GenerateModel(IModel model, string @namespace, string contextDir, string contextName, string connectionString, ModelCodeGenerationOptions options) { EntityTypeConfigurationTemplateService.RegisterPartialTemplates(); var resultingFiles = base.GenerateModel(model, @namespace, contextDir, contextName, connectionString, options); string generatedCode; if (!(CSharpEntityTypeConfigurationGenerator is NullCSharpEntityTypeConfigurationGenerator)) { foreach (var entityType in model.GetEntityTypes()) { generatedCode = CSharpEntityTypeConfigurationGenerator.WriteCode(entityType, @namespace, options.UseDataAnnotations); var transformedFileName = EntityTypeTransformationService.TransformEntityTypeConfigurationFileName(entityType.DisplayName(), HandlebarsScaffoldingOptions.EntityTypeConfigurationFileNameSuffix); var entityTypeCfgFileName = transformedFileName + FileExtension; resultingFiles.AdditionalFiles.Add(new ScaffoldedFile { Path = Path.Combine(contextDir, contextName + HandlebarsScaffoldingOptions.EntityTypeConfigurationDirSuffix, entityTypeCfgFileName), Code = generatedCode }); } } return(resultingFiles); }
/// <summary> /// Generate entity type class. /// </summary> /// <param name="entityType">Represents an entity type in an <see cref="T:Microsoft.EntityFrameworkCore.Metadata.IModel" />.</param> /// <param name="namespace">Entity type namespace.</param> /// <param name="useDataAnnotations">If true use data annotations.</param> /// <returns>Generated entity type.</returns> public virtual string WriteCode(IEntityType entityType, string @namespace, bool useDataAnnotations) { if (entityType == null) { throw new ArgumentNullException(nameof(entityType)); } if (@namespace == null) { throw new ArgumentNullException(nameof(@namespace)); } TemplateData = new Dictionary <string, object>(); GenerateImports(entityType); TemplateData.Add("namespace", @namespace); GenerateClassAndMap(entityType, useDataAnnotations); string output = EntityTypeConfigurationTemplateService.GenerateEntityTypeConfiguration(TemplateData); return(output); }