|
1 | 1 | using System.Linq; |
2 | 2 |
|
| 3 | +using EntityFrameworkCore.Generator.Metadata.Generation; |
3 | 4 | using EntityFrameworkCore.Generator.Options; |
4 | 5 |
|
5 | 6 | using Microsoft.EntityFrameworkCore.Scaffolding.Metadata; |
@@ -149,6 +150,57 @@ public void GenerateModelsCheckNames() |
149 | 150 |
|
150 | 151 | } |
151 | 152 |
|
| 153 | + [Fact] |
| 154 | + public void GenerateViewModelsSkipsCreateAndUpdateModels() |
| 155 | + { |
| 156 | + var generatorOptions = new GeneratorOptions(); |
| 157 | + generatorOptions.Model.Read.Generate = true; |
| 158 | + generatorOptions.Model.Create.Generate = true; |
| 159 | + generatorOptions.Model.Update.Generate = true; |
| 160 | + |
| 161 | + var databaseModel = new DatabaseModel |
| 162 | + { |
| 163 | + DatabaseName = "TestDatabase", |
| 164 | + DefaultSchema = "dbo" |
| 165 | + }; |
| 166 | + var testView = new DatabaseView |
| 167 | + { |
| 168 | + Database = databaseModel, |
| 169 | + Name = "TestView", |
| 170 | + Schema = "dbo" |
| 171 | + }; |
| 172 | + databaseModel.Tables.Add(testView); |
| 173 | + |
| 174 | + var identifierColumn = new DatabaseColumn |
| 175 | + { |
| 176 | + Table = testView, |
| 177 | + Name = "Id", |
| 178 | + IsNullable = false, |
| 179 | + StoreType = "int" |
| 180 | + }; |
| 181 | + testView.Columns.Add(identifierColumn); |
| 182 | + |
| 183 | + var nameColumn = new DatabaseColumn |
| 184 | + { |
| 185 | + Table = testView, |
| 186 | + Name = "Name", |
| 187 | + IsNullable = true, |
| 188 | + StoreType = "varchar(50)" |
| 189 | + }; |
| 190 | + testView.Columns.Add(nameColumn); |
| 191 | + var generator = new ModelGenerator(NullLoggerFactory.Instance); |
| 192 | + |
| 193 | + var typeMappingSource = CreateTypeMappingSource(); |
| 194 | + |
| 195 | + var result = generator.Generate(generatorOptions, databaseModel, typeMappingSource); |
| 196 | + Assert.Single(result.Entities); |
| 197 | + |
| 198 | + var firstEntity = result.Entities[0]; |
| 199 | + Assert.True(firstEntity.IsView); |
| 200 | + Assert.Single(firstEntity.Models); |
| 201 | + Assert.Equal(ModelType.Read, firstEntity.Models[0].ModelType); |
| 202 | + } |
| 203 | + |
152 | 204 | [Fact] |
153 | 205 | public void GenerateWithSymbolInDatabaseName() |
154 | 206 | { |
|
0 commit comments