我有这个代码适用于所有情况,除非framework.cache
内有?
或=
个符号
{}
如果我删除{?}它有效,如果我硬编码 var db = new MyContext();
var fullSql =
@"select /*+ PARALLEL(6) */ id
from table1 ( contains(sometext,' ( {?}xxx ) ') > 0 )
and some_field = :someParam order by xxx desc fetch next 10 rows only ";
var sqlParams = new List<object>();
sqlParams.Add(0);
var ids = db.Database.SqlQuery<string>(fullSql, sqlParams.ToArray()).ToList();
它也有效。如果没有通过someParam
编辑:好像EF将Curly Brackets中的内容视为参数
答案 0 :(得分:0)
你需要放一个&#34; q&#34;在你的字符串前面,使它成为字面
因此:来自table1(包含(sometext,q&#39;({?} xxx)&#39;)&gt; 0)
答案 1 :(得分:0)
是的,正如您在评论中提到的,解决方案是将所有 {
替换为 {{
。以及所有带有 }
的 }}
。