Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用EF-Core和C使用PgSql进行Sql参数化#_C#_.net_Entity Framework Core_Npgsql - Fatal编程技术网

C# 使用EF-Core和C使用PgSql进行Sql参数化#

C# 使用EF-Core和C使用PgSql进行Sql参数化#,c#,.net,entity-framework-core,npgsql,C#,.net,Entity Framework Core,Npgsql,我正在尝试使用C#和EF Core执行一个SQL查询,它接受一个参数。我相信这个参数被忽略了 我使用的代码是 string sqlQuery = @"SELECT ""Studies"".* FROM ""Studies"" INNER JOIN ""Searches"" on &qu

我正在尝试使用C#和EF Core执行一个SQL查询,它接受一个参数。我相信这个参数被忽略了

我使用的代码是

string sqlQuery = @"SELECT ""Studies"".* 
                    FROM ""Studies"" 
                    INNER JOIN ""Searches"" on ""Searches"".""StudyId"" =""Studies"".""StudyId"" 
                    WHERE ""Searches"".""Document"" @@ to_tsquery('@text')";

      
IQueryable<Study> studies = _studiesContext.Studies.FromSqlRaw(sqlQuery, new NpgsqlParameter("@text", "fire"));
但我没有。相反,我得到的结果与我在Postgres控制台中键入以下内容相同:

SELECT "Studies"."StudyId", 
        "Studies"."Title",
        "Studies"."Author"
FROM "Studies"
INNER JOIN "Searches" on "Searches"."StudyId" ="Studies"."StudyId" 
WHERE "Searches"."Document" @@ to_tsquery('fire');
SELECT "Studies"."StudyId", 
        "Studies"."Title",
        "Studies"."Author"
FROM "Studies"
INNER JOIN "Searches" on "Searches"."StudyId" ="Studies"."StudyId" 
WHERE "Searches"."Document" @@ to_tsquery('@text');
我相信在我的查询中,
@text
不会被
fire
替换

EF核心日志显示:

Executed DbCommand (10ms) [Parameters=[@text='?'], CommandType='Text', CommandTimeout='30']
SELECT "Studies".*
FROM "Studies"
INNER JOIN "Searches" on "Searches"."StudyId" ="Studies"."StudyId"
WHERE "Searches"."Document" @@ to_tsquery('@text')

我觉得我遗漏了一些显而易见的东西?

我认为@text周围的单引号是问题所在,请尝试在没有它们的情况下删除单引号:
以查询(@text)