我正在使用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注入攻击开放。如果是这样,有谁知道如何参数化我的两个参数?
感谢您的帮助。