#postgresql #entity-framework-core
#postgresql #сущность-структура-ядро
Вопрос:
У меня есть база данных postgresql с несколькими схемами (давайте назовем их schema1 (по умолчанию), schema2, schema3), и я хочу вызвать функцию в контексте схемы, отличной от схемы по умолчанию.
Так, например, у меня есть таблица (на схеме 2):
CREATE TABLE company( id INT PRIMARY KEY NOT NULL, name TEXT NOT NULL );
и функция:
create or replace function get_all_companies () returns table ( id int, name text ) language plpgsql as $ begin return query select * from company; end;$
но вызов запроса выглядит так:
_context.Company.FromSqlInterpolated($"SELECT * FROM get_all_companies()").ToListAsync();
приводит к ошибке, говоря, что get_all_companies
этого не существует. Вызов функции schema2.get_all_companies()
приводит к relation "postcodes" does not exist
ошибке.
Я установил контекст с помощью builder.HasDefaultSchema("schema2");
, но это, похоже, не влияет на контекст, в котором FromSqlInterpolated
выполняется вызов. Я чувствую, что упускаю что-то основное, но не могу понять, что именно, с помощью документации и поиска в Google. (Я понимаю, что мог бы также ссылаться на схему в своей функции, но предпочел бы этого избежать)