我正在使用 Entity Framework 4.1 开发一个 ASP.Net MVC 3 应用程序。对于其中一个查询,我正在利用DbSet类上的SqlQuery方法,该方法使我能够执行返回实体列表的原始 SQL 查询。
我的 Service 类中有一个方法,见下文,我在其中编写原始 sql 并传入两个参数shiftID和shiftDateID。
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 注入攻击。如果是这样,有谁知道我如何参数化我的两个参数?
谢谢你的帮助。