【发布时间】:2013-04-04 18:30:00
【问题描述】:
我正在尝试传入一个 SQL 字符串来删除一些记录。我正在使用 DbContext.Database.ExecuteSqlCommand 函数,但是除了 SQL 字符串之外,它还需要以下形式的参数列表:params Object[] parameters
因为我不需要发送任何参数,所以我尝试传递 null ,但这会生成一个错误,指出 null 不是有效参数。我找不到该方法的重载。如何发送不需要附加参数的 SQL 命令?这是我的代码示例:
db.Database.ExecuteSqlCommand("DELETE FROM SignoffCommentAttachment
WHERE SignoffCommentAttachment.SignoffCommentID
IN (SELECT [SignoffCommentID] FROM [SignoffComments]
WHERE SignoffID = " + signOffID.ToString() + ")", null);
【问题讨论】:
-
你看过
MDSNDBContext.Execute 命令的解释public int ExecuteSqlCommand( string sql, params Object[] parameters )这是方法签名.. 它期望参数为Arraymsdn.microsoft.com/en-us/library/… -
当前形式的Sql Injection Attack 看起来是个不错的案例。
-
不确定如何攻击它,因为包含此代码的方法只接受一个 int 作为参数。
标签: c# .net sql-server entity-framework