0

我正在使用 Entity Framework 4.1 开发一个 ASP.Net MVC 3 应用程序。对于其中一个查询,我正在利用DbSet类上的SqlQuery方法,该方法使我能够执行返回实体列表的原始 SQL 查询。

我的 Service 类中有一个方法,见下文,我在其中编写原始 sql 并传入两个参数shiftIDshiftDateID

public IList<User> GetAvailableLocums(int shiftID, int shiftDateID)
{
   var query = @"set language 'British'

   SELECT   *
   FROM     [Shift]
   WHERE    shiftID = @p0
   AND      shiftDateID = @p1";

   return _UoW.User.GetWithRawSql(query, shiftID, shiftDateID).ToList();

}

然后我在我的 Repository 类中调用以下方法,见下文,

public IEnumerable<TEntity> GetWithRawSql(string query, params object[] parameters)
{
     return dbSet.SqlQuery(query, parameters).ToList();
}

我担心这可能会受到 SQL 注入攻击。如果是这样,有谁知道我如何参数化我的两个参数?

谢谢你的帮助。

4

1 回答 1

1

你见过这个http://msdn.microsoft.com/en-us/library/bb738521.aspx吗?第二个代码块..

于 2012-08-14T11:14:15.487 回答