如何在LINQ to Entity Framework中使用SQL通配符
发布时间:2021-01-23 04:27:40 所属栏目:MsSql教程 来源:网络整理
导读:我有一个看起来像这样的查询: IQueryableProfile profiles = from p in connection.Profiles where profile.Email.Contains(txtSearch) select p; 我知道当它转换为SQL时,它使用LIKE’% txtSearch%’的值,但是如果txtSearch =“jon%gmail.com”它将它转换
我有一个看起来像这样的查询: IQueryable<Profile> profiles = from p in connection.Profiles where profile.Email.Contains(txtSearch) select p; 我知道当它转换为SQL时,它使用LIKE’%< txtSearch>%’的值,但是如果txtSearch =“jon%gmail.com”它将它转换为`LIKE’%jon~%gmail.com%’ . ?逃脱了中间的百分比,这是一张外卡.我该如何解决这个问题?我需要能够将通配符放入我的LINQ到EF搜索中. 解决方法我不确定这是否可以直接使用linq,因为你只能调用像Contains,StartsWith或EndsWith这样的基本字符串函数. It is possible with Entity SQL所以你可以结合这些方法.var query = new ObjectQuery<Profile>( @"SELECT VALUE p FROM CsdlContainerName.Profiles AS p WHERE p.Email LIKE '" + wildcardSearch + "'",context); var result = query.AsQueryable().OrderByDescending(p => p.Name).ToList(); ESQL注入反击:) 没有注入漏洞的第二个版本(我没有尝试但它应该工作): var commandText = @"SELECT VALUE p FROM CsdlContainerName.Profiles AS p WHERE p.Email LIKE @search"; var query = new ObjectQuery<Profile>(commandText,context); query.Parameters.Add(new ObjectParameter("search",wildcardSearch)); var result = query.AsQueryable().OrderByDescending(p => p.Name).ToList(); (编辑:应用网_常德站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – 未记录的CONVERT样式 – datetime 23
- entity-framework – 获取Model模式,以使用不支持CreateDat
- CSS和HTML与前端技术层图示
- sql-server – 在表上插入,删除和更新的SQL Server触发器
- 如何在SQL Access数据库表中找到第11个条目?
- Sql事务怎么理解?一文迅速了解Sql事务的用法
- sql-server-2005 – 如何停止并重新启动sql server 2005?
- sql-server – 是否可以强制优化器消除此分区视图中不相关的
- sql-server – 在这种特定情况下,为什么使用表变量的速度是
- 从一列复制到另一列(不同的表相同的数据库)mysql
站长推荐
热点阅读