Skip to content

Commit d6a4581

Browse files
committed
Fixed issue with DBset and table name discrepency
1 parent fd3986b commit d6a4581

File tree

3 files changed

+23
-12
lines changed

3 files changed

+23
-12
lines changed

Modules/Intent.Modules.EntityFrameworkCore/Intent.EntityFrameworkCore.imodspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<package>
33
<id>Intent.EntityFrameworkCore</id>
4-
<version>5.0.32-pre.1</version>
4+
<version>5.0.32-pre.2</version>
55
<supportedClientVersions>[4.5.0-a, 5.0.0-a)</supportedClientVersions>
66
<summary>Provides the Entity Framework Core, Object Relational Mapper framework</summary>
77
<description>Provides the Entity Framework Core, Object Relational Mapper framework</description>

Modules/Intent.Modules.EntityFrameworkCore/Intent.Modules.EntityFrameworkCore.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<PropertyGroup>
44
<TargetFramework>net8.0</TargetFramework>
5-
<Version>5.0.32-pre.1</Version>
5+
<Version>5.0.32-pre.2</Version>
66
<Authors>Intent Architect</Authors>
77
<Description>Base classes and helpers for building modules that output C# files for Intent Architect.</Description>
88
<Copyright>Copyright 2022</Copyright>

Modules/Intent.Modules.EntityFrameworkCore/Templates/EntityTypeConfiguration/EntityTypeConfigurationTemplatePartial.cs

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -396,17 +396,28 @@ private bool IsTableInlined(ClassExtensionModel model)
396396

397397
private bool RequiresToTableStatementForConvention(string className)
398398
{
399-
switch (ExecutionContext.Settings.GetDatabaseSettings().TableNamingConvention().AsEnum())
399+
var tableNamingConvention = ExecutionContext.Settings.GetDatabaseSettings().TableNamingConvention().AsEnum();
400+
var dbSetNamingConvention = ExecutionContext.Settings.GetDatabaseSettings().DBSetNamingConvention().AsEnum();
401+
402+
// Compute the expected table name based on the table naming convention
403+
string expectedTableName = tableNamingConvention switch
400404
{
401-
case DatabaseSettingsExtensions.TableNamingConventionOptionsEnum.Singularized:
402-
return true;
403-
case DatabaseSettingsExtensions.TableNamingConventionOptionsEnum.None:
404-
//Because DBSets are plural table names default to table, we need to add ToTables in the name is not pluralized
405-
return className != className.Pluralize();
406-
case DatabaseSettingsExtensions.TableNamingConventionOptionsEnum.Pluralized:
407-
default:
408-
return false;
409-
}
405+
DatabaseSettingsExtensions.TableNamingConventionOptionsEnum.Pluralized => className.Pluralize(),
406+
DatabaseSettingsExtensions.TableNamingConventionOptionsEnum.Singularized => className.Singularize(),
407+
DatabaseSettingsExtensions.TableNamingConventionOptionsEnum.None => className,
408+
_ => className
409+
};
410+
411+
// Compute the DbSet name based on the DBSet naming convention
412+
string dbSetName = dbSetNamingConvention switch
413+
{
414+
DatabaseSettingsExtensions.DBSetNamingConventionOptionsEnum.Pluralized => className.Pluralize(),
415+
DatabaseSettingsExtensions.DBSetNamingConventionOptionsEnum.SameAsEntity => className,
416+
_ => className
417+
};
418+
419+
// If the DbSet name does not match the expected table name, ToTable is required
420+
return dbSetName != expectedTableName;
410421
}
411422

412423
private string GetTableNameByConvention(string className)

0 commit comments

Comments
 (0)