Схема таблицы EF Core 5.0 RC1

#asp.net-core #entity-framework-core #ef-core-5.0

#asp.net-ядро #сущность-основа-ядро #ef-core-5.0

Вопрос:

Я только что обновил свой демонстрационный проект Blazor до EF Core 5.0 RC1, чтобы воспользоваться преимуществами новой функции «многие ко многим», которую она предоставляет. После завершения обновления я запустил свои модульные тесты, и все они завершились с той же ошибкой: «Недопустимое имя объекта»

После небольшого исследования я определил, что запрос больше не включает схему таблицы в запрос. Поскольку все мои таблицы принадлежат схемам, отличным от dbo, ни один из моих запросов не работает. Я пытался выяснить, как заставить ef core 5.0 использовать схему таблицы, но мне не повезло.

Я указываю схему в модели с атрибутом таблицы, как показано ниже.

 [Table("Work", Schema = "act")]
public class Work
{
    [Key]
    public int WorkID { get; set; }
}
  

Я выполнил миграцию и написал сценарий после обновления, и все таблицы имели правильную схему, поэтому очевидно, что ef может видеть схему, но по какой-то причине она не отображается в запросе.

Спасибо за любую помощь, которую вы можете предоставить.

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

1. (1) Вы говорите обо всех таблицах или только о таблицах объединения «многие ко многим»? (2) Как вы настраиваете таблицы соединений? У вас все еще есть класс для них? Если нет, то как указать имя / схему таблицы? Можете ли вы опубликовать пример одной из моделей / конфигурации «многие ко многим» — до версии 5.0 и сейчас?

2. Попробуйте использовать Microsoft SQL Server Management Studio (SSMS), чтобы проверить таблицы данных и наличие схем, и убедитесь, что вы используете ту же базу данных. Кроме того, насколько я знаю, SQLite не поддерживает схемы , пожалуйста, проверьте свой код, чтобы убедиться, что вы его не используете. Наконец, я предлагаю вам опубликовать достаточно кода (включая таблицу «многие ко многим», определение dbcontext и оператор запроса), чтобы воспроизвести проблему, и лучше опубликовать подробное сообщение об ошибке.

3. Если предположение Ивана верно, я отправил вопрос № 22844 для обсуждения с командой.