fix(aihitMainSyncer): Добавлен commit после синхронизации новых полей и новых значений полей: раньше вызывал null ошибку при получении Id новых значений.
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.20" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.17" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -288,6 +288,7 @@ private async Task SyncValuesAsync(List<string?> values)
|
||||
if (hasNull && !existingValuesInDb.Contains(null))
|
||||
newValuesToInsert.Add(null);
|
||||
|
||||
// Если нет новых значений, выходим БЕЗ вызова CommitAsync
|
||||
if (newValuesToInsert.Count == 0)
|
||||
{
|
||||
logger.LogDebug("Нет новых значений для добавления в базу данных");
|
||||
@@ -302,15 +303,19 @@ private async Task SyncValuesAsync(List<string?> values)
|
||||
})
|
||||
.ToList();
|
||||
|
||||
// Только добавляем в контекст, НЕ коммитим
|
||||
if (!await unitFieldValueRepository.AddRangeAsync(newFieldValues))
|
||||
{
|
||||
logger.LogError("Не удалось добавить {Count} новых значений FieldValues в контекст", newValuesToInsert.Count);
|
||||
return;
|
||||
}
|
||||
else
|
||||
// Коммит выполняется ТОЛЬКО если были добавлены новые сущности
|
||||
if (!await unitFieldValueRepository.CommitAsync())
|
||||
{
|
||||
logger.LogDebug("Подготовлено {Count} новых значений FieldValues для сохранения", newValuesToInsert.Count);
|
||||
logger.LogError("Не удалось сохранить {Count} новых значений FieldValues в базу данных", newValuesToInsert.Count);
|
||||
return;
|
||||
}
|
||||
|
||||
logger.LogDebug("Успешно сохранено {Count} новых значений FieldValues", newValuesToInsert.Count);
|
||||
}
|
||||
|
||||
|
||||
@@ -318,6 +323,7 @@ private async Task SyncValuesAsync(List<string?> values)
|
||||
{
|
||||
var newFields = fieldsFromAihit.Where(t => !fieldsFromDB.Any(f => IsStringEqual(f.AihitName, t))).ToList();
|
||||
|
||||
// Если нет новых полей, выходим БЕЗ вызова CommitAsync
|
||||
if (!newFields.Any())
|
||||
{
|
||||
logger.LogDebug("Нет новых полей для добавления в базу данных");
|
||||
@@ -335,18 +341,22 @@ private async Task SyncValuesAsync(List<string?> values)
|
||||
EsppName = null,
|
||||
};
|
||||
|
||||
// Только добавляем в контекст, НЕ коммитим
|
||||
if (!await unitFieldRepository.CreateAsync(field))
|
||||
{
|
||||
logger.LogError("Не удалось добавить поле в контекст: {FieldName}", item);
|
||||
continue;
|
||||
}
|
||||
|
||||
// Коммит выполняется ТОЛЬКО после успешного добавления конкретного поля
|
||||
if (!await unitFieldRepository.CommitAsync())
|
||||
{
|
||||
logger.LogError("Не удалось сохранить поле в базу данных: {FieldName}", item);
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.LogDebug("Подготовлено поле для сохранения: {FieldName}", item);
|
||||
logger.LogDebug("Успешно сохранено поле: {FieldName}", item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} }
|
||||
|
||||
private bool IsStringEqual(string? value1, string? value2)
|
||||
{
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.20" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.17" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -1,18 +1,14 @@
|
||||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Debug",
|
||||
"Microsoft.EntityFrameworkCore": "Debug",
|
||||
"Microsoft.EntityFrameworkCore.Database.Command": "Warning",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
"ConnectionStrings": {
|
||||
"RedisConnection": "10.99.253.216:6379,password=ParrP@ssPtk202MMdevDvs"
|
||||
},
|
||||
"Serilog": {
|
||||
"MinimumLevel": {
|
||||
"Default": "Debug",
|
||||
"Override": {
|
||||
//"Microsoft": "Information",
|
||||
"Microsoft.Hosting.Lifetime": "Information"
|
||||
"Microsoft": "Warning",
|
||||
"Microsoft.Hosting.Lifetime": "Debug",
|
||||
"PARR.DAL": "Information"
|
||||
}
|
||||
},
|
||||
"WriteTo": [
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"ConnectionStrings": {
|
||||
"DefaultConnection": "Server=10.99.253.184;Database=parr;User Id=app_parr; Password=PosdfkhT&)%sdfligL&%5546;"
|
||||
"DefaultConnection": "Server=10.99.253.184;Database=parr;User Id=app_parr; Password=PosdfkhT&)%sdfligL&%5546;",
|
||||
"RedisConnection": "parr-redis:6379,password=ParrP@ssPtk202MMdevDvs"
|
||||
},
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
|
||||
Reference in New Issue
Block a user