题
我需要在查询中用其他字符串替换多个字符串
from p in dx.Table
where p.Field.Replace("A", "a").Replace("B", "b").ToLower() = SomeVar
select p
它提供了一个很好的单个SQL语句和相关的REPLACE()sql命令。
一切都好:)
我需要围绕应用程序进行一些查询...所以我正在寻找这方面的帮助;这将像服务器上的单个SQL命中/命令一样工作
看起来似乎无法使用RegEx,因为没有SQL eq
作为一名LINQ新手,我有一个很好的方式来做这件事吗?
例如是否可以将其作为IQueryable“var result”获得。说并将其传递给函数以添加所需的.Replace()并传回去?我可以快速举例说明如何吗?
编辑:这似乎有效!它看起来会有问题吗?var data = from p in dx.Videos select p;
data = AddReplacements(data, checkMediaItem);
theitem = data.FirstOrDefault();
...
public IQueryable<Video> AddReplacements(IQueryable<Video> DataSet, string checkMediaItem)
{
return DataSet.Where(p =>
p.Title.Replace(" ", "-").Replace("&", "-").Replace("?", "-") == checkMediaItem);
}
解决方案
在这里反转你要做的事情是不是更有效率,即重新格式化你正在检查的字符串而不是重新格式化数据库中的数据?
public IQueryable<Video> AddReplacements(IQueryable<Video> DataSet, string checkMediaItem)
{
var str = checkMediaItem.Replace("-", "?").Replace("&", "-").Replace("-", " "));
return DataSet.Where(p => p.Title == str);
}
因此,您现在将数据库中的字段与设定值进行比较,而不是扫描表格并转换每行中的数据并进行比较。
不隶属于 StackOverflow