diff --git a/src/Cli/ConfigGenerator.cs b/src/Cli/ConfigGenerator.cs
index 8cec9dd239..f9fb54f06d 100644
--- a/src/Cli/ConfigGenerator.cs
+++ b/src/Cli/ConfigGenerator.cs
@@ -3268,7 +3268,7 @@ public static bool TrySimulateAutoentities(AutoConfigSimulateOptions options, Fi
if (runtimeConfig.DataSource.DatabaseType != DatabaseType.MSSQL)
{
- _logger.LogError("Autoentities simulation is only supported for MSSQL databases. Current database type: {DatabaseType}.", runtimeConfig.DataSource.DatabaseType);
+ _logger.LogError("The autoentities simulation is only supported for MSSQL databases. Current database type: {DatabaseType}.", runtimeConfig.DataSource.DatabaseType);
return false;
}
@@ -3360,7 +3360,7 @@ public static bool TrySimulateAutoentities(AutoConfigSimulateOptions options, Fi
/// The simulation results keyed by filter (definition) name.
private static void WriteSimulationResultsToConsole(Dictionary> results)
{
- Console.WriteLine("AutoEntities Simulation Results");
+ Console.WriteLine("Autoentities Simulation Results");
Console.WriteLine();
foreach ((string filterName, List<(string EntityName, string SchemaName, string ObjectName)> matches) in results)
diff --git a/src/Config/ObjectModel/RuntimeConfig.cs b/src/Config/ObjectModel/RuntimeConfig.cs
index 89cc7413d1..fb536109ab 100644
--- a/src/Config/ObjectModel/RuntimeConfig.cs
+++ b/src/Config/ObjectModel/RuntimeConfig.cs
@@ -502,7 +502,7 @@ public string GetDataSourceNameFromAutoentityName(string autoentityName)
if (!_autoentityNameToDataSourceName.TryGetValue(autoentityName, out string? autoentityDataSource))
{
throw new DataApiBuilderException(
- message: $"{autoentityName} is not a valid autoentity.",
+ message: $"'{autoentityName}' is not a valid autoentities definition.",
statusCode: HttpStatusCode.NotFound,
subStatusCode: DataApiBuilderException.SubStatusCodes.EntityNotFound);
}
diff --git a/src/Core/Services/MetadataProviders/MsSqlMetadataProvider.cs b/src/Core/Services/MetadataProviders/MsSqlMetadataProvider.cs
index 96fa47dcfd..8af409b4e8 100644
--- a/src/Core/Services/MetadataProviders/MsSqlMetadataProvider.cs
+++ b/src/Core/Services/MetadataProviders/MsSqlMetadataProvider.cs
@@ -305,7 +305,7 @@ protected override async Task GenerateAutoentitiesIntoEntities(IReadOnlyDictiona
foreach ((string autoentityName, Autoentity autoentity) in autoentities)
{
int addedEntities = 0;
- JsonArray? resultArray = await QueryAutoentitiesAsync(autoentity);
+ JsonArray? resultArray = await QueryAutoentitiesAsync(autoentityName, autoentity);
if (resultArray is null)
{
continue;
@@ -316,7 +316,7 @@ protected override async Task GenerateAutoentitiesIntoEntities(IReadOnlyDictiona
if (resultObject is null)
{
throw new DataApiBuilderException(
- message: $"Cannot create new entity from autoentity pattern due to an internal error.",
+ message: $"Cannot create new entity from autoentities definition '{autoentityName}' due to an internal error.",
statusCode: HttpStatusCode.InternalServerError,
subStatusCode: DataApiBuilderException.SubStatusCodes.ErrorInInitialization);
}
@@ -329,7 +329,7 @@ protected override async Task GenerateAutoentitiesIntoEntities(IReadOnlyDictiona
if (string.IsNullOrWhiteSpace(entityName) || string.IsNullOrWhiteSpace(objectName) || string.IsNullOrWhiteSpace(schemaName))
{
- _logger.LogError("Skipping autoentity generation: entity_name or object is null or empty for autoentity pattern '{AutoentityName}'.", autoentityName);
+ _logger.LogError("Skipping autoentity generation: 'entity_name', 'object', or 'schema' is null or empty for autoentities definition '{AutoentityName}'.", autoentityName);
continue;
}
@@ -356,7 +356,7 @@ protected override async Task GenerateAutoentitiesIntoEntities(IReadOnlyDictiona
if (!entities.TryAdd(entityName, generatedEntity) || !runtimeConfig.TryAddGeneratedAutoentityNameToDataSourceName(entityName, autoentityName))
{
throw new DataApiBuilderException(
- message: $"Entity with name '{entityName}' already exists. Cannot create new entity from autoentity pattern with definition-name '{autoentityName}'.",
+ message: $"Entity with name '{entityName}' already exists. Cannot create new entity from autoentities definition '{autoentityName}'.",
statusCode: HttpStatusCode.BadRequest,
subStatusCode: DataApiBuilderException.SubStatusCodes.ErrorInInitialization);
}
@@ -375,14 +375,14 @@ protected override async Task GenerateAutoentitiesIntoEntities(IReadOnlyDictiona
if (addedEntities == 0)
{
- _logger.LogWarning("No new entities were generated from the autoentity {autoentityName} defined in the configuration.", autoentityName);
+ _logger.LogWarning("No new entities were generated from the autoentities definition '{autoentityName}'.", autoentityName);
}
}
_runtimeConfigProvider.AddMergedEntitiesToConfig(entities);
}
- public async Task QueryAutoentitiesAsync(Autoentity autoentity)
+ public async Task QueryAutoentitiesAsync(string autoentityName, Autoentity autoentity)
{
string include = string.Join(",", autoentity.Patterns.Include);
string exclude = string.Join(",", autoentity.Patterns.Exclude);
@@ -395,10 +395,10 @@ protected override async Task GenerateAutoentitiesIntoEntities(IReadOnlyDictiona
{ $"{BaseQueryStructure.PARAM_NAME_PREFIX}name_pattern", new(namePattern, null, SqlDbType.NVarChar) }
};
- _logger.LogInformation("Query for Autoentities is being executed with the following parameters.");
- _logger.LogInformation($"Autoentities include pattern: {include}");
- _logger.LogInformation($"Autoentities exclude pattern: {exclude}");
- _logger.LogInformation($"Autoentities name pattern: {namePattern}");
+ _logger.LogDebug("Query for autoentities is being executed with the following parameters.");
+ _logger.LogDebug($"The autoentities definition '{autoentityName}' include pattern: {include}");
+ _logger.LogDebug($"The autoentities definition '{autoentityName}' exclude pattern: {exclude}");
+ _logger.LogDebug($"The autoentities definition '{autoentityName}' name pattern: {namePattern}");
JsonArray? resultArray = await QueryExecutor.ExecuteQueryAsync(
sqltext: getAutoentitiesQuery,
diff --git a/src/Core/Services/MetadataProviders/SqlMetadataProvider.cs b/src/Core/Services/MetadataProviders/SqlMetadataProvider.cs
index 6aa2712468..662da43b9c 100644
--- a/src/Core/Services/MetadataProviders/SqlMetadataProvider.cs
+++ b/src/Core/Services/MetadataProviders/SqlMetadataProvider.cs
@@ -711,7 +711,7 @@ private void GenerateDatabaseObjectForEntities()
///
protected virtual Task GenerateAutoentitiesIntoEntities(IReadOnlyDictionary? autoentities)
{
- throw new NotSupportedException($"{GetType().Name} does not support Autoentities yet.");
+ throw new NotSupportedException($"{GetType().Name} does not support autoentities yet.");
}
protected void PopulateDatabaseObjectForEntity(
diff --git a/src/Service.Tests/Configuration/ConfigurationTests.cs b/src/Service.Tests/Configuration/ConfigurationTests.cs
index 6dac0266bd..a8925f3ad6 100644
--- a/src/Service.Tests/Configuration/ConfigurationTests.cs
+++ b/src/Service.Tests/Configuration/ConfigurationTests.cs
@@ -5611,7 +5611,7 @@ public async Task TestAutoentitiesAreGeneratedIntoEntities(bool useEntities, int
///
[TestCategory(TestCategory.MSSQL)]
[DataTestMethod]
- [DataRow("publishers", "uniqueSingularPublisher", "uniquePluralPublishers", "/unique/publisher", "Entity with name 'publishers' already exists. Cannot create new entity from autoentity pattern with definition-name 'PublisherAutoEntity'.", DisplayName = "Autoentities fail due to entity name")]
+ [DataRow("publishers", "uniqueSingularPublisher", "uniquePluralPublishers", "/unique/publisher", "Entity with name 'publishers' already exists. Cannot create new entity from autoentities definition 'PublisherAutoEntity'.", DisplayName = "Autoentities fail due to entity name")]
[DataRow("UniquePublisher", "publishers", "uniquePluralPublishers", "/unique/publisher", "Entity publishers generates queries/mutation that already exist", DisplayName = "Autoentities fail due to graphql singular type")]
[DataRow("UniquePublisher", "uniqueSingularPublisher", "publishers", "/unique/publisher", "Entity publishers generates queries/mutation that already exist", DisplayName = "Autoentities fail due to graphql plural type")]
[DataRow("UniquePublisher", "uniqueSingularPublisher", "uniquePluralPublishers", "/publishers", "The rest path: publishers specified for entity: publishers is already used by another entity.", DisplayName = "Autoentities fail due to rest path")]
diff --git a/src/Service.Tests/UnitTests/SqlMetadataProviderUnitTests.cs b/src/Service.Tests/UnitTests/SqlMetadataProviderUnitTests.cs
index 4c5782b4ca..7242716847 100644
--- a/src/Service.Tests/UnitTests/SqlMetadataProviderUnitTests.cs
+++ b/src/Service.Tests/UnitTests/SqlMetadataProviderUnitTests.cs
@@ -634,7 +634,7 @@ public async Task CheckAutoentitiesQuery(string[] include, string[] exclude, str
// Act
MsSqlMetadataProvider metadataProvider = (MsSqlMetadataProvider)_sqlMetadataProvider;
- JsonArray resultArray = await metadataProvider.QueryAutoentitiesAsync(autoentity);
+ JsonArray resultArray = await metadataProvider.QueryAutoentitiesAsync("autoentity", autoentity);
// Assert
Assert.IsNotNull(resultArray);