Базовая реализация WebAPI с аудитом.NET и C #: ошибка EntityFrameworkCore.Внутренняя.EnumerableExtensions

#c# #entity-framework #audit.net #audit.net.sqlserver

#c# #entity-framework #audit.net #audit.net.sqlserver

Вопрос:

Я только начинаю использовать Audit.NET . Я загружаю шаблон с

 dotnet new -i Audit.WebApi.Template
dotnet new webapiaudit -E
 

К сожалению, проект не работает. Когда я отправляю значение, у меня возникает внутренняя ошибка сервера. Описание довольно длинное, но в основном ошибка

Майкрософт.AspNetCore.Диагностика.DeveloperExceptionPageMiddleware: Ошибка: при выполнении запроса возникло необработанное исключение. Система.Исключение TypeLoadException: не удалось загрузить тип ‘Microsoft.EntityFrameworkCore.Внутренняя.EnumerableExtensions «из сборки»Microsoft.EntityFrameworkCore, версия = 5.0.1.0, Культура = нейтральная, PublicKeyToken= adb9793829ddae60’. в Microsoft.EntityFrameworkCore.RelationalPropertyExtensions.Найдите разделяемую таблицу. RootPrimaryKeyProperty(свойство iProperty) в Microsoft.EntityFrameworkCore.RelationalPropertyExtensions.GetDefaultColumnName(свойство iProperty) в Microsoft.EntityFrameworkCore.RelationalPropertyExtensions.Получить ColumnName(свойство iProperty) при аудите.EntityFramework.DbContextHelper.Получить ColumnName(iProperty prop) при аудите.EntityFramework.DbContextHelper.Получить значение ColumnValues(контекст IAuditDbContext, запись EntityEntry) при аудите.EntityFramework.DbContextHelper.Создайте событие аудита (контекст IAuditDbContext) при аудите.EntityFramework.DbContextHelper.SaveChangesAsync(IAuditDbContext context, функция `1 baseSaveChanges) в проектах.Providers.ValuesProvider.InsertAsync(строковое значение) в C:ProjectsAuditNetWebapiProvidersValuesProvider.cs:line 32 в проектах.Контроллеры.ValuesController.Сообщение (строковое значение) в C:ProjectsAuditNetWebapiControllersValuesController.cs:line 40

У вас есть какие-нибудь идеи? Существуют ли шаблоны проектов из ASP.NET или Консоль?

Я создал репозиторий на GitHub с проектом.

Комментарии:

1. Является ли код GITHUB размещенным клиентом или сервером? Код GITHUB выглядит как клиент с контроллером. Затем вы сказали: «У меня внутренняя ошибка сервера». Контроллер используется для обработки ответа и разбора на классы сущностей. Ваш код curl также выглядит так, как будто вы пытаетесь подключиться к серверу. Таким образом, похоже, что сервер не отправляет хороший ответ, а затем вы получаете ошибку при обработке клиентом плохого ответа. Пожалуйста, игнорируйте ошибку ответа клиента, пока вы сначала не исправите внутреннюю ошибку сервера.

2. Если вы запустите проект, у вас будет развязность. Когда вы POST вводите новое значение, приложение вызывает Audit.NET и генерирует эту ошибку. Код является шаблонным для Audit.NET ; Я только добавил развязность

3. Мы ничего не знаем ни о вашем сервере, ни об ответе, который вы получаете. Лучшее, что мы можем порекомендовать, это обработать исключение, возникающее при неожиданном ответе, возвращаемом с сервера. Мы не можем устранить основную причину проблемы, которая является внутренней ошибкой сервера, поскольку мы ничего не знаем о сервере. Все, что вы опубликовали, было исключением, которое возникло, когда сервер вернул неожиданный ответ. Неверный ответ, поскольку сервер получил сообщение об ошибке после отправки запроса и до того, как был возвращен хороший ответ.

4. @Enrico шаблон включает в себя опцию -S , которую вы можете использовать для автоматического включения Swagger. Я не смог воспроизвести, вы что-нибудь изменили в сгенерированном проекте перед сборкой?

Ответ №1:

Я думаю, это потому, что вы нацелены на более новую версию EF.Ядро больше, чем текущее, поддерживаемое аудитом.EntityFramework.Ядро, которое является 3.1.0.

Не могли бы вы открыть проблему здесь?

Обновить

Это было исправлено в версии 16.3.0, теперь библиотека Audit.EntityFramework.Core совместима с EF Core 5.0.1

Комментарии:

1. Выполнено github.com/thepirat000/Audit.NET/issues/352

2. Я создал сообщение, в котором я внедряю систему аудита с помощью аудита. ЧИСТЫЙ пошаговый puresourcecode.com/dotnet/net-core /…