#entity-framework #rabbitmq #masstransit #sqlexception #consumer
#entity-framework #rabbitmq #masstransit #исключение sqlexception #потребитель
Вопрос:
Я пытаюсь запустить MassTransit / Sample-JobConsumer в ядре EntityFramework, но получаю странную ошибку
(0x80131904): неправильный синтаксис рядом с ключевым словом ‘UPDATE’
Шаги для воспроизведения:
-
Клонировать MassTransit / Sample-JobConsumer
-
Удалите PostgreSQL для установки EntityFrameworkCore
Пожалуйста, кто-нибудь поможет мне понять, что произошло.
Вы можете увидеть репозиторий на 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!