diff --git a/eng/Versions.props b/eng/Versions.props
index 0bec00168..7979eadfe 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -80,6 +80,7 @@
6.0.0-preview.3.21166.3
13.0.1
6.3.1
+ 2.14.1
diff --git a/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApi.cshtml b/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApi.cshtml
index daf359683..828c2c89e 100644
--- a/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApi.cshtml
+++ b/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApi.cshtml
@@ -6,7 +6,7 @@
string routePrefix = "/api/" + modelName;
string endPointsClassName = Model.EndpointsName;
string methodName = $"Map{@modelName}Endpoints";
- string pluralModel = $"{@modelName}s";
+ string pluralModel = Model.ModelType.PluralName;
string getAllModels = $"GetAll{@pluralModel}";
string getModelById = $"Get{@modelName}ById";
string deleteModel = $"Delete{@modelName}";
diff --git a/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApiEf.cshtml b/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApiEf.cshtml
index a0ea6cb63..97d7d21f8 100644
--- a/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApiEf.cshtml
+++ b/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApiEf.cshtml
@@ -5,7 +5,7 @@
string routePrefix = "/api/" + modelName;
string endPointsClassName = Model.EndpointsName;
string methodName = $"Map{@modelName}Endpoints";
- string pluralModel = $"{@modelName}s";
+ string pluralModel = Model.ModelType.PluralName;
string getAllModels = $"GetAll{@pluralModel}";
string getModelById = $"Get{@modelName}ById";
string deleteModel = $"Delete{@modelName}";
diff --git a/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApiEfNoClass.cshtml b/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApiEfNoClass.cshtml
index 7635a034c..ed57f8b59 100644
--- a/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApiEfNoClass.cshtml
+++ b/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApiEfNoClass.cshtml
@@ -4,7 +4,7 @@
string routePrefix = "/api/" + modelName;
string endPointsClassName = Model.EndpointsName;
string methodName = $"Map{@modelName}Endpoints";
- string pluralModel = $"{@modelName}s";
+ string pluralModel = Model.ModelType.PluralName;
string getAllModels = $"GetAll{@pluralModel}";
string getModelById = $"Get{@modelName}ById";
string deleteModel = $"Delete{@modelName}";
diff --git a/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApiNoClass.cshtml b/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApiNoClass.cshtml
index b3e269d45..bb2cd5d28 100644
--- a/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApiNoClass.cshtml
+++ b/src/Scaffolding/VS.Web.CG.Mvc/Templates/MinimalApi/MinimalApiNoClass.cshtml
@@ -6,7 +6,7 @@
string routePrefix = "/api/" + modelName;
string endPointsClassName = Model.EndpointsName;
string methodName = $"Map{@modelName}Endpoints";
- string pluralModel = $"{@modelName}s";
+ string pluralModel = Model.ModelType.PluralName;
string getAllModels = $"GetAll{@pluralModel}";
string getModelById = $"Get{@modelName}ById";
string deleteModel = $"Delete{@modelName}";
diff --git a/src/Shared/Microsoft.DotNet.Scaffolding.Shared/Microsoft.DotNet.Scaffolding.Shared.csproj b/src/Shared/Microsoft.DotNet.Scaffolding.Shared/Microsoft.DotNet.Scaffolding.Shared.csproj
index 7d20ce34a..d1cd297e4 100644
--- a/src/Shared/Microsoft.DotNet.Scaffolding.Shared/Microsoft.DotNet.Scaffolding.Shared.csproj
+++ b/src/Shared/Microsoft.DotNet.Scaffolding.Shared/Microsoft.DotNet.Scaffolding.Shared.csproj
@@ -22,11 +22,10 @@
-
-
+
-
+
True
@@ -41,5 +40,5 @@
MessageStrings.Designer.cs
-
+
diff --git a/src/Shared/Microsoft.DotNet.Scaffolding.Shared/Project/ModelType.cs b/src/Shared/Microsoft.DotNet.Scaffolding.Shared/Project/ModelType.cs
index b4a610418..4faed9430 100644
--- a/src/Shared/Microsoft.DotNet.Scaffolding.Shared/Project/ModelType.cs
+++ b/src/Shared/Microsoft.DotNet.Scaffolding.Shared/Project/ModelType.cs
@@ -2,6 +2,7 @@
// The .NET Foundation licenses this file to you under the MIT license.
using System;
+using Humanizer;
using Microsoft.CodeAnalysis;
namespace Microsoft.DotNet.Scaffolding.Shared.Project
@@ -14,6 +15,7 @@ public class ModelType
public string FullName { get; set; }
+ public string PluralName => Name?.Pluralize(inputIsKnownToBeSingular: false);
// Violating the principle that ModelType should be decoupled from Roslyn's API.
// I had to do this for editing DbContext scenarios but I need to figure out if there
// is a better way.