문제

쿼리에서 여러 문자열을 다른 문자열로 바꿔야합니다.

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);
}

따라서 이제 데이터베이스의 필드를 테이블을 스캔하고 각 행의 데이터를 변환하고 비교하는 대신 설정 값과 설정합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top