|
1 | 1 | using System; |
2 | 2 | using System.Data; |
3 | 3 |
|
| 4 | +using EntityFrameworkCore.Generator.Metadata.Generation; |
4 | 5 | using EntityFrameworkCore.Generator.Options; |
5 | 6 |
|
6 | 7 | using Microsoft.Extensions.Logging.Abstractions; |
@@ -94,6 +95,57 @@ public void GenerateModelsCheckNames() |
94 | 95 |
|
95 | 96 | } |
96 | 97 |
|
| 98 | + [Fact] |
| 99 | + public void GenerateViewModelsSkipsCreateAndUpdateModels() |
| 100 | + { |
| 101 | + var generatorOptions = new GeneratorOptions(); |
| 102 | + generatorOptions.Model.Read.Generate = true; |
| 103 | + generatorOptions.Model.Create.Generate = true; |
| 104 | + generatorOptions.Model.Update.Generate = true; |
| 105 | + |
| 106 | + var databaseModel = new DatabaseModel |
| 107 | + { |
| 108 | + DatabaseName = "TestDatabase", |
| 109 | + DefaultSchema = "dbo" |
| 110 | + }; |
| 111 | + var testView = new DatabaseView |
| 112 | + { |
| 113 | + Database = databaseModel, |
| 114 | + Name = "TestView", |
| 115 | + Schema = "dbo" |
| 116 | + }; |
| 117 | + databaseModel.Tables.Add(testView); |
| 118 | + |
| 119 | + var identifierColumn = new DatabaseColumn |
| 120 | + { |
| 121 | + Table = testView, |
| 122 | + Name = "Id", |
| 123 | + IsNullable = false, |
| 124 | + StoreType = "int" |
| 125 | + }; |
| 126 | + testView.Columns.Add(identifierColumn); |
| 127 | + |
| 128 | + var nameColumn = new DatabaseColumn |
| 129 | + { |
| 130 | + Table = testView, |
| 131 | + Name = "Name", |
| 132 | + IsNullable = true, |
| 133 | + StoreType = "varchar(50)" |
| 134 | + }; |
| 135 | + testView.Columns.Add(nameColumn); |
| 136 | + var generator = new ModelGenerator(NullLoggerFactory.Instance); |
| 137 | + |
| 138 | + var typeMappingSource = CreateTypeMappingSource(); |
| 139 | + |
| 140 | + var result = generator.Generate(generatorOptions, databaseModel, typeMappingSource); |
| 141 | + Assert.Single(result.Entities); |
| 142 | + |
| 143 | + var firstEntity = result.Entities[0]; |
| 144 | + Assert.True(firstEntity.IsView); |
| 145 | + Assert.Single(firstEntity.Models); |
| 146 | + Assert.Equal(ModelType.Read, firstEntity.Models[0].ModelType); |
| 147 | + } |
| 148 | + |
97 | 149 | [Fact] |
98 | 150 | public void GenerateWithSymbolInDatabaseName() |
99 | 151 | { |
|
0 commit comments