Массив JobConsumer: (0x80131904): неправильный синтаксис рядом с ключевым словом ‘UPDATE’

#entity-framework #rabbitmq #masstransit #sqlexception #consumer

#entity-framework #rabbitmq #masstransit #исключение sqlexception #потребитель

Вопрос:

Я пытаюсь запустить MassTransit / Sample-JobConsumer в ядре EntityFramework, но получаю странную ошибку

(0x80131904): неправильный синтаксис рядом с ключевым словом ‘UPDATE’

Шаги для воспроизведения:

  1. Клонировать MassTransit / Sample-JobConsumer

  2. Удалите PostgreSQL для установки EntityFrameworkCore

  3. Команда Update-Database создает правильную базу данных введите описание изображения здесь

  4. Запустить проект JobService.Service
    введите описание изображения здесь

  5. Отправить запрос от Postman (ответ действителен): введите описание изображения здесь

  6. RabbitMQ принимает запросы: введите описание изображения здесь

  7. Но во время обработки (в консоли) произошла ошибка: введите описание изображения здесь

Пожалуйста, кто-нибудь поможет мне понять, что произошло.

Вы можете увидеть репозиторий на github с реализованным хранилищем EntityFrameworkCore

PS При конфигурации по умолчанию ошибка была другой введите описание изображения здесь

[Обновление 1]

После того, как я изменил PostgresLockStatementProvider на SqlServerLockStatementProvider (спасибо Крису Паттерсону за помощь). Но у меня другая ошибка: введите описание изображения здесь

[Обновление 2]

После того, как я установил плагин для RabbitMQ, все стало отлично работать и с EntityFrameworkCore! (Спасибо Крису Паттерсону) введите описание изображения здесь

Ответ №1:

Чтобы перейти на SQL Server, вам необходимо изменить конфигурацию ядра EF на UseSqlServer , вам также необходимо удалить поставщика блокировки PostgreSQL (поставщиком блокировки по умолчанию является SQLServer). Есть три строки, в которых требуется это изменение, по одной для каждого конечного автомата.

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

1. Спасибо за ответ. Я изменил PostgresLockStatementProvider на SqlServerLockStatementProvider . Но у меня другая ошибка.

2. Вам нужно настроить планировщик сообщений, я был уверен, что он есть в образце.

3. Ну, вы не сохранили эту довольно важную строку: cfg.UseRabbitMqMessageScheduler();

4. Вероятно, у вас не установлен / не включен подключаемый модуль RabbitMQ с задержкой обмена.

5. Большое тебе спасибо, Крис! После того, как я установил плагин для RabbitMQ, все стало отлично работать и с EntityFrameworkCore!