【发布时间】:2019-03-13 22:11:45
【问题描述】:
我无法解决这个问题,我感到很沮丧。我想对数据库中的人进行基本搜索,以下工作正常
IQueryable<VwSomeView> dbresult = db.vwSomeView.FromSql("select * from vwSomeView where firstname like '%" + searchfor + "%' or lastname like '%" + searchfor + "%'");
但这很糟糕,因为可能存在 SQL 注入。所以我尝试了这个(因为我在调用存储过程之前使用它并且它工作正常)
IQueryable<VwSomeView> dbresult = db.vwSomeView.FromSql("select * from vwSomeView where firstname like '%{0]%' or lastname like '%{0}%'",searchfor);
wich 不工作。我用 SqlParameter
试过了SqlParameter para = new SqlParameter("search", searchfor);
IQueryable<VwSomeView> dbresult = db.vwSomeView.FromSql("select * from vwSomeView where firstname like '%@search%' or lastname like '%@search%'",para);
这也不行。
有人可以告诉我我做错了什么吗? 谢谢
【问题讨论】:
-
我可以看到你已经典型化了表类......为什么你没有使用 Linq 逻辑?
-
IQueryable
dbresult = db.vwSomeView.FromSql("select * from vwSomeView where firstname like '%{search}%' or lastname like '%{search}%'",para); . . .试试这个,它可能会工作。 @莫蒂 -
@MarcoDalZovo 因为我没有经常使用 Linq,但我根本没想到
标签: c# entity-framework sql-like