Как мне создать таблицы Scaffold с базой данных EF.Core, содержащей специальные символы $ - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть следующая таблица в нашем SQL Server:

[prod].[dbo].[My Company$Customer]

Я хочу пометить эту таблицу с помощью:

Scaffold-DbContext "Server=SQLPROD;Database=prod;Trusted_Connection=True;integrated security=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -table "dbo.My Company$Customer"

Но она всегда выдаст мне следующую ошибку:

Unable to find a table in the database matching the selected table

Если я опускаю ключ -table, все работает нормально, но я получаю ВСЕ таблицы, которые являются МНОГО, и они мне не нужны.Так как же правильно использовать ключ -table?Я использую ef.core 2.2.1

1 Ответ

0 голосов
/ 11 февраля 2019

В SQL Server, если у вас есть специальные символы в именах таблиц (например, пробелы или что-либо, что не является буквой или цифрой), вам необходимо заключить имя объекта в квадратные скобки.Таким образом, ваша командная строка будет выглядеть примерно так:

Scaffold-DbContext "<connection-string>" 
    Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models 
    -table "[dbo].[My Company$Customer]"

Вам строго не нужны квадратные скобки вокруг схемы (dbo), но нет ничего плохого в том, чтобы включать их и там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...