Skip to content

Commit 4a80622

Browse files
committed
#754 Exclude modelBuilder command if TVF already declared
1 parent 969f788 commit 4a80622

File tree

12 files changed

+39
-4
lines changed

12 files changed

+39
-4
lines changed

EntityFramework.Reverse.POCO.Generator/EF.Reverse.POCO.v3.ttinclude

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3397,7 +3397,8 @@
33973397
isEfCore3Plus ? "FromSqlRaw" : "FromSql",
33983398
isEfCore3Plus ? "Set" : "Query",
33993399
isEfCore3Plus ? "Entity" : "Query",
3400-
isEfCore3Plus ? ".HasNoKey()" : string.Empty
3400+
isEfCore3Plus ? ".HasNoKey()" : string.Empty,
3401+
!Settings.StoredProcedureReturnTypes.ContainsKey(tvf.NameHumanCase) && !Settings.StoredProcedureReturnTypes.ContainsKey(tvf.DbName)
34013402
))
34023403
.ToList();
34033404

@@ -6489,6 +6490,7 @@
64896490
public string QueryString { get; }
64906491
public string ModelBuilderCommand { get; }
64916492
public string ModelBuilderPostCommand { get; }
6493+
public bool IncludeModelBuilder { get; }
64926494

64936495
public TableValuedFunctionsTemplateData(bool singleReturnModel,
64946496
string singleReturnColumnName,
@@ -6503,7 +6505,8 @@
65036505
string fromSql,
65046506
string queryString,
65056507
string modelBuilderCommand,
6506-
string modelBuilderPostCommand)
6508+
string modelBuilderPostCommand,
6509+
bool includeModelBuilder)
65076510
{
65086511
SingleReturnModel = singleReturnModel && !string.IsNullOrEmpty(singleReturnColumnName);
65096512
SingleReturnColumnName = singleReturnColumnName;
@@ -6520,6 +6523,7 @@
65206523
QueryString = queryString;
65216524
ModelBuilderCommand = modelBuilderCommand;
65226525
ModelBuilderPostCommand = modelBuilderPostCommand;
6526+
IncludeModelBuilder = includeModelBuilder;
65236527
}
65246528
}
65256529
public class HiLoSequence
@@ -18255,7 +18259,9 @@ using {{this}};{{#newline}}
1825518259
{{#newline}}
1825618260
// Table Valued Functions{{#newline}}
1825718261
{{#each tableValuedFunctions}}
18262+
{{#if IncludeModelBuilder}}
1825818263
modelBuilder.{{ModelBuilderCommand}}<{{ReturnClassName}}>(){{ModelBuilderPostCommand}};{{#newline}}
18264+
{{/if}}
1825918265
{{/each}}
1826018266
{{/if}}
1826118267

@@ -19748,7 +19754,9 @@ using {{this}};{{#newline}}
1974819754
{{#newline}}
1974919755
// Table Valued Functions{{#newline}}
1975019756
{{#each tableValuedFunctions}}
19757+
{{#if IncludeModelBuilder}}
1975119758
modelBuilder.{{ModelBuilderCommand}}<{{ReturnClassName}}>(){{ModelBuilderPostCommand}};{{#newline}}
19759+
{{/if}}
1975219760
{{/each}}
1975319761
{{/if}}
1975419762

@@ -21319,7 +21327,9 @@ using {{this}};{{#newline}}
2131921327
{{#newline}}
2132021328
// Table Valued Functions{{#newline}}
2132121329
{{#each tableValuedFunctions}}
21330+
{{#if IncludeModelBuilder}}
2132221331
modelBuilder.{{ModelBuilderCommand}}<{{ReturnClassName}}>(){{ModelBuilderPostCommand}};{{#newline}}
21332+
{{/if}}
2132321333
{{/each}}
2132421334
{{/if}}
2132521335

@@ -22935,7 +22945,9 @@ using {{this}};{{#newline}}
2293522945
{{#newline}}
2293622946
// Table Valued Functions{{#newline}}
2293722947
{{#each tableValuedFunctions}}
22948+
{{#if IncludeModelBuilder}}
2293822949
modelBuilder.{{ModelBuilderCommand}}<{{ReturnClassName}}>(){{ModelBuilderPostCommand}};{{#newline}}
22950+
{{/if}}
2293922951
{{/each}}
2294022952
{{/if}}
2294122953

Generator/Generators/CodeGenerator.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,8 @@ public CodeGenerator(Generator generator, IDbContextFilter filter)
103103
isEfCore3Plus ? "FromSqlRaw" : "FromSql",
104104
isEfCore3Plus ? "Set" : "Query",
105105
isEfCore3Plus ? "Entity" : "Query",
106-
isEfCore3Plus ? ".HasNoKey()" : string.Empty
106+
isEfCore3Plus ? ".HasNoKey()" : string.Empty,
107+
!Settings.StoredProcedureReturnTypes.ContainsKey(tvf.NameHumanCase) && !Settings.StoredProcedureReturnTypes.ContainsKey(tvf.DbName)
107108
))
108109
.ToList();
109110

Generator/Generators/TableValuedFunctionsTemplateData.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public class TableValuedFunctionsTemplateData
1717
public string QueryString { get; }
1818
public string ModelBuilderCommand { get; }
1919
public string ModelBuilderPostCommand { get; }
20+
public bool IncludeModelBuilder { get; }
2021

2122
public TableValuedFunctionsTemplateData(bool singleReturnModel,
2223
string singleReturnColumnName,
@@ -31,7 +32,8 @@ public TableValuedFunctionsTemplateData(bool singleReturnModel,
3132
string fromSql,
3233
string queryString,
3334
string modelBuilderCommand,
34-
string modelBuilderPostCommand)
35+
string modelBuilderPostCommand,
36+
bool includeModelBuilder)
3537
{
3638
SingleReturnModel = singleReturnModel && !string.IsNullOrEmpty(singleReturnColumnName);
3739
SingleReturnColumnName = singleReturnColumnName;
@@ -48,6 +50,7 @@ public TableValuedFunctionsTemplateData(bool singleReturnModel,
4850
QueryString = queryString;
4951
ModelBuilderCommand = modelBuilderCommand;
5052
ModelBuilderPostCommand = modelBuilderPostCommand;
53+
IncludeModelBuilder = includeModelBuilder;
5154
}
5255
}
5356
}

Generator/Templates/TemplateEfCore2.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,9 @@ protected override void OnModelCreating(ModelBuilder modelBuilder){{#newline}}
311311
{{#newline}}
312312
// Table Valued Functions{{#newline}}
313313
{{#each tableValuedFunctions}}
314+
{{#if IncludeModelBuilder}}
314315
modelBuilder.{{ModelBuilderCommand}}<{{ReturnClassName}}>(){{ModelBuilderPostCommand}};{{#newline}}
316+
{{/if}}
315317
{{/each}}
316318
{{/if}}
317319

Generator/Templates/TemplateEfCore3.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,9 @@ protected override void OnModelCreating(ModelBuilder modelBuilder){{#newline}}
325325
{{#newline}}
326326
// Table Valued Functions{{#newline}}
327327
{{#each tableValuedFunctions}}
328+
{{#if IncludeModelBuilder}}
328329
modelBuilder.{{ModelBuilderCommand}}<{{ReturnClassName}}>(){{ModelBuilderPostCommand}};{{#newline}}
330+
{{/if}}
329331
{{/each}}
330332
{{/if}}
331333

Generator/Templates/TemplateEfCore5.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,9 @@ protected override void OnModelCreating(ModelBuilder modelBuilder){{#newline}}
329329
{{#newline}}
330330
// Table Valued Functions{{#newline}}
331331
{{#each tableValuedFunctions}}
332+
{{#if IncludeModelBuilder}}
332333
modelBuilder.{{ModelBuilderCommand}}<{{ReturnClassName}}>(){{ModelBuilderPostCommand}};{{#newline}}
334+
{{/if}}
333335
{{/each}}
334336
{{/if}}
335337

Generator/Templates/TemplateEfCore6.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,9 @@ protected override void OnModelCreating(ModelBuilder modelBuilder){{#newline}}
329329
{{#newline}}
330330
// Table Valued Functions{{#newline}}
331331
{{#each tableValuedFunctions}}
332+
{{#if IncludeModelBuilder}}
332333
modelBuilder.{{ModelBuilderCommand}}<{{ReturnClassName}}>(){{ModelBuilderPostCommand}};{{#newline}}
334+
{{/if}}
333335
{{/each}}
334336
{{/if}}
335337

Tester.Integration.EFCore6/TestDatabase.tt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@
2121
Settings.GenerateSeparateFiles = false;
2222
Settings.Namespace = "TestDatabaseStandard"; // Override the default namespace here
2323

24+
// #754
25+
//Settings.StoredProcedureReturnTypes.Add("CsvToInt", "Person");
26+
2427
FilterSettings.Reset();
2528
FilterSettings.AddDefaults();
2629
FilterSettings.SchemaFilters.Add(new RegexExcludeFilter("Enum"));

_File based templates/Templates.EFCore2/DatabaseContext.mustache

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,9 @@
105105
{{#newline}}
106106
// Table Valued Functions{{#newline}}
107107
{{#each tableValuedFunctions}}
108+
{{#if IncludeModelBuilder}}
108109
modelBuilder.{{ModelBuilderCommand}}<{{ReturnClassName}}>(){{ModelBuilderPostCommand}};{{#newline}}
110+
{{/if}}
109111
{{/each}}
110112
{{/if}}
111113

_File based templates/Templates.EFCore3/DatabaseContext.mustache

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,9 @@
105105
{{#newline}}
106106
// Table Valued Functions{{#newline}}
107107
{{#each tableValuedFunctions}}
108+
{{#if IncludeModelBuilder}}
108109
modelBuilder.{{ModelBuilderCommand}}<{{ReturnClassName}}>(){{ModelBuilderPostCommand}};{{#newline}}
110+
{{/if}}
109111
{{/each}}
110112
{{/if}}
111113

0 commit comments

Comments
 (0)