使用IN关键字参数化SQL命令

时间:2018-09-28 16:56:54

标签: c# entity-framework security entity-framework-6

我正在使用c#+ EF6尝试对SQL命令进行参数设置时遇到问题。在极少数情况下,我必须使用Context.Database.ExecuteSqlCommand(sqltext)。

问题是这样的:

执行的查询正在使用IN关键字,例如

Analyzer analyzer = new StandardAnalyzer();
MultiFieldQueryParser mParser = new MultiFieldQueryParser(arrSearchFields,
  analyzer);

Query keyWordsQuery = mParser.parse(names);

@ids是一个整数列表-如果有一个整数,则由于隐式转换,查询运行正常:

DELETE FROM MyTable WHERE ID in (@ids)

但是当有项目列表时,它将失败,并显示转换错误

exec sp_executesql N'DELETE FROM MyTable WHERE ID IN (@ids)',N'@ids nvarchar(7)',@ids=N'1' 

如何构造参数或sq以使用sql参数工作?

提前谢谢...

0 个答案:

没有答案