Необработанный SQL в Postgres с EntityFramework Core

Скажем, у меня есть таблица клиентов, и я хотел бы сделать запрос с помощью необработанного SQL. Код ниже не работает:

List<Customer> customers = _db.Customer.FromSql("SELECT * FROM Customer").ToList();

Вылетает с кодом ошибки

'42P01: relation "customer" does not exist'

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
0
944
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В определенных ситуациях Postgres будет создавать имена таблиц с учетом регистра, поэтому вам, возможно, придется ссылаться на имена таблиц таким образом. Это делается путем добавления кавычек вокруг имен таблиц, например: "Customer".

Возможно, вам также потребуется включить схему. Это должно работать:

List<Customer> customers = _db.Customer.FromSql("SELECT * FROM \"public\".\"Customer\"").ToList();

Предполагая, что ваше имя схемы является «общедоступным». В противном случае вместо этого введите имя вашей схемы.

Postgres не «производит» имена с учетом регистра — все это результат того, как вы написали оператор CREATE TABLE. Правила — достаточно ясно, но использование идентификаторов в кавычках — сильно обескуражен.

a_horse_with_no_name 08.03.2021 14:27

Вы правы, конечно. Я просто оказался в ситуации с идентификаторами в кавычках, так как использовал мастер SQL Manager для создания базы данных.

Thorkil Værge 08.03.2021 14:53

Другие вопросы по теме