From 1c675cae47f9814dcfdf2d76ea8f2285c5c1d131 Mon Sep 17 00:00:00 2001 From: ErikEJ Date: Fri, 12 Jul 2019 15:53:34 +0200 Subject: [PATCH] add entityType comment Add test and fix test Fix wrong class name Add missing test --- .../Internal/CSharpDbContextGenerator.cs | 8 +++++++ .../Internal/CSharpDbContextGeneratorTest.cs | 23 +++++++++++++++++-- .../RelationalScaffoldingModelFactoryTest.cs | 6 ++++- 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/src/EFCore.Design/Scaffolding/Internal/CSharpDbContextGenerator.cs b/src/EFCore.Design/Scaffolding/Internal/CSharpDbContextGenerator.cs index 56a0bd8bd8a..d3ca7d2d0fe 100644 --- a/src/EFCore.Design/Scaffolding/Internal/CSharpDbContextGenerator.cs +++ b/src/EFCore.Design/Scaffolding/Internal/CSharpDbContextGenerator.cs @@ -357,6 +357,7 @@ private void GenerateEntityType(IEntityType entityType, bool useDataAnnotations) var annotations = entityType.GetAnnotations().ToList(); RemoveAnnotation(ref annotations, CoreAnnotationNames.ConstructorBinding); RemoveAnnotation(ref annotations, RelationalAnnotationNames.TableName); + RemoveAnnotation(ref annotations, RelationalAnnotationNames.Comment); RemoveAnnotation(ref annotations, RelationalAnnotationNames.Schema); RemoveAnnotation(ref annotations, ScaffoldingAnnotationNames.DbSetName); @@ -388,6 +389,13 @@ private void GenerateEntityType(IEntityType entityType, bool useDataAnnotations) lines.AddRange(GenerateAnnotations(annotations.Except(annotationsToRemove))); + if (entityType.GetComment() != null) + { + lines.Add( + $".{nameof(RelationalEntityTypeBuilderExtensions.HasComment)}" + + $"({_code.Literal(entityType.GetComment())})"); + } + AppendMultiLineFluentApi(entityType, lines); foreach (var index in entityType.GetIndexes()) diff --git a/test/EFCore.Design.Tests/Scaffolding/Internal/CSharpDbContextGeneratorTest.cs b/test/EFCore.Design.Tests/Scaffolding/Internal/CSharpDbContextGeneratorTest.cs index 9c16caf8ad4..73094fe8d83 100644 --- a/test/EFCore.Design.Tests/Scaffolding/Internal/CSharpDbContextGeneratorTest.cs +++ b/test/EFCore.Design.Tests/Scaffolding/Internal/CSharpDbContextGeneratorTest.cs @@ -159,11 +159,30 @@ public void Comments_use_fluent_api() }), new ModelCodeGenerationOptions(), code => Assert.Contains( - ".HasColumn(\"An int property\")", + ".HasComment(\"An int property\")", code.ContextFile.Code), model => Assert.Equal( "An int property", - model.FindEntityType("Entity").GetProperty("Property").GetComment())); + model.FindEntityType("TestNamespace.Entity").GetProperty("Property").GetComment())); + } + + [Fact] + public void Entity_comments_use_fluent_api() + { + Test( + modelBuilder => modelBuilder.Entity( + "Entity", + x => + { + x.HasComment("An entity comment"); + }), + new ModelCodeGenerationOptions(), + code => Assert.Contains( + ".HasComment(\"An entity comment\")", + code.ContextFile.Code), + model => Assert.Equal( + "An entity comment", + model.FindEntityType("TestNamespace.Entity").GetComment())); } private class TestCodeGeneratorPlugin : ProviderCodeGeneratorPlugin diff --git a/test/EFCore.Design.Tests/Scaffolding/Internal/RelationalScaffoldingModelFactoryTest.cs b/test/EFCore.Design.Tests/Scaffolding/Internal/RelationalScaffoldingModelFactoryTest.cs index f3e5ddaec30..13f7473ca63 100644 --- a/test/EFCore.Design.Tests/Scaffolding/Internal/RelationalScaffoldingModelFactoryTest.cs +++ b/test/EFCore.Design.Tests/Scaffolding/Internal/RelationalScaffoldingModelFactoryTest.cs @@ -1802,7 +1802,7 @@ public void Unmapped_column_is_ignored() } [Fact] - public void Column_comments() + public void Column_and_table_comments() { var database = new DatabaseModel { @@ -1811,6 +1811,7 @@ public void Column_comments() new DatabaseTable { Name = "Table", + Comment = "A table", Columns = { IdColumn, @@ -1827,6 +1828,9 @@ public void Column_comments() var model = _factory.Create(database, useDatabaseNames: false); + var table = model.FindEntityType("Table"); + Assert.Equal("A table", table.GetComment()); + var column = model.FindEntityType("Table").GetProperty("Column"); Assert.Equal("An int column", column.GetComment()); }