C# EF 5删除查询中的引号

C# EF 5删除查询中的引号,c#,.net,entity-framework,entity-framework-5,database-performance,C#,.net,Entity Framework,Entity Framework 5,Database Performance,关于Oracle数据库中只包含数字的字符串字段,EF5有一个问题 以下是示例代码: using (Entities ex = new Entities()) { string nrcart = "861858662"; GLB_PESSOA_OPERADORA pessoa = ex.GLB_PESSOA_OPERADORA.FirstOrDefault(p => p.NR_CARTEIRINHA == nrcart); } 我的问题是EF正在对数据库生成以下查询: SELECT "Ex

关于Oracle数据库中只包含数字的字符串字段,EF5有一个问题

以下是示例代码:

using (Entities ex = new Entities())
{
string nrcart = "861858662";
GLB_PESSOA_OPERADORA pessoa = ex.GLB_PESSOA_OPERADORA.FirstOrDefault(p => p.NR_CARTEIRINHA == nrcart);
}
我的问题是EF正在对数据库生成以下查询:

SELECT "Extent1"."ID_PESSOA_OPERADORA"      AS "ID_PESSOA_OPERADORA",
       "Extent1"."NR_CARTEIRINHA"           AS "NR_CARTEIRINHA"
FROM   "GLB_PESSOA_OPERADORA" "Extent1"
WHERE  ("Extent1"."NR_CARTEIRINHA" = 861858662 /* @p__linq__0 */)
  AND (ROWNUM <= (1))
请注意,查询没有使用on where语句围绕参数。 数据库中的字段、返回类中的属性、模型上的映射和nrcart变量都是字符串类型的。为什么要删除引号

如果没有它们,数据库将无法使用索引,并且查询运行速度太慢


谢谢您的帮助

您是否尝试过字符串nrcart=\861858662\;或者字符串nrcart='861858662';?对我现在刚试过。谢谢你的回复。但结果并不是更好。对于nrcart=\861858662\,结果sql是其中Extent1.NR_carterinha='861858662',nrcart='861858662',Extent1.NR_carterinha='861858662'都是错误的,而且我想知道为什么它不添加引号,因为字段和实体都是字符串。为什么仅仅因为字符串没有字母就决定不包含它们呢?如果我尝试使用nrcart=abc123,它就可以正常工作。因此,如果我让用户输入字符串进行查询,我必须检查字符串是否有字母,并正确添加引号?在查询字符串字段时,必须有更好的方法强制EF使用引号,不管字符串是否包含字母。