LINQ에서 SQL을 사용하고 Chained Replace를 사용합니다
-
03-07-2019 - |
문제
쿼리에서 여러 문자열을 다른 문자열로 바꿔야합니다.
from p in dx.Table
where p.Field.Replace("A", "a").Replace("B", "b").ToLower() = SomeVar
select p
관련 대체 () SQL 명령과 함께 멋진 단일 SQL 문을 제공합니다.
문제 없다 :)
응용 프로그램 주변의 몇 가지 쿼리 로이 작업을 수행해야합니다. 따라서 이와 관련하여 도움을 찾고 있습니다. 서버에서 단일 SQL hit/명령으로 위에서 작동합니다.
주위를 둘러 보면 SQL EQ가 없기 때문에 Regex를 사용할 수 없습니다.
LINQ 초보자가되기 때문에이 일을 할 수있는 좋은 방법이 있습니까?
예를 들어, Iqueryable "var result"로 얻을 수 있습니까? 그렇다면 어떻게 빠른 예를 얻을 수 있습니까?
편집 : 이것은 작동하는 것 같습니다! 문제가 될 것 같습니까?
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