0

有人知道为什么这会在@table 附近给我不正确的语法异常吗?

object[] changeQueryParams = new object[] { new SqlParameter("table", dbContext.tXSell.EntitySet.Name), new SqlParameter("fromversion", 0) };

string changeQueryString = @"SELECT * FROM CHANGETABLE(CHANGES @table, @fromversion) AS ch";

ObjectResult<object> changes = dbContext.ExecuteStoreQuery<object>(changeQueryString, changeQueryParams);

我正在使用 mssql 2008 r2、ef4、c#。

4

1 回答 1

1

您不能将表名作为参数传递给CHANGETABLE SQL 函数。您可以尝试动态构建 SQL。它应该不受 sql 注入的影响,因为您只连接EntitySet.Name属性中的值。

string changeQueryString = @"SELECT * FROM CHANGETABLE(CHANGES " + dbContext.tXSell.EntitySet.Name +" , @fromversion) AS ch";
于 2013-06-04T16:06:35.313 回答