콘텐츠로 건너뛰기
리뷰나라
  • JAVASCRIPT
  • JAVA
  • PYTHON
  • C#
  • Android
  • Html

[.net] Linq에서 SQL Like %를 수행하는 방법은 무엇입니까?

Program / 글쓴이 어드민

Linq로 바꾸려고하는 SQL 절차가 있습니다.

SELECT O.Id, O.Name as Organization
FROM Organizations O
JOIN OrganizationsHierarchy OH ON O.Id=OH.OrganizationsId
where OH.Hierarchy like '%/12/%'

내가 가장 우려하는 라인은 다음과 같습니다.

where OH.Hierarchy like '%/12/%'

예를 들어 / 1 / 3 / 12 /와 같은 계층 구조를 저장하는 열이 있으므로 % / 12 / %를 사용하여 검색하십시오.

내 질문은 Linq 또는 .NET이 백분율 기호를 사용하는 것과 동등한 것입니까?



답변

.Where(oh => oh.Hierarchy.Contains("/12/"))

당신은 또한 사용할 수 있습니다 .StartsWith()또는 .EndsWith().


답변

이것을 사용하십시오 :

from c in dc.Organization
where SqlMethods.Like(c.Hierarchy, "%/12/%")
select *;


답변

Linq-to-SQL *을 사용한다고 가정합니다 (아래 참고 참조). 그렇다면 string.Contains, string.StartsWith 및 string.EndsWith를 사용하여 SQL LIKE 연산자를 사용하는 SQL을 생성하십시오.

from o in dc.Organization
join oh in dc.OrganizationsHierarchy on o.Id equals oh.OrganizationsId
where oh.Hierarchy.Contains(@"/12/")
select new { o.Id, o.Name }

또는

from o in dc.Organization
where o.OrganizationsHierarchy.Hierarchy.Contains(@"/12/")
select new { o.Id, o.Name }

노트 : * = .net 3.5에서 ADO.Net Entity Framework (EF / L2E)를 사용하는 경우 Linq-to-SQL과 동일한 변환을 수행하지 않습니다. L2S는 적절한 변환을 수행하지만 L2E v1 (3.5)은 t-sql 표현식으로 변환되어 where 절 또는 조인 필터에 더 나은 판별 기가없는 경우 쿼리중인 테이블에서 전체 테이블 스캔을 수행합니다.
업데이트 : 이것은 EF / L2E v4 (.net 4.0)에서 수정되었으므로 L2S와 마찬가지로 SQL LIKE를 생성합니다.


답변

VB.NET을 사용하는 경우 대답은 “*”입니다. where 절은 다음과 같습니다.

Where OH.Hierarchy Like '*/12/*'

참고 : “*”0 개 이상의 문자와 일치합니다. 다음은 Like 연산자에 대한 msdn 기사입니다 .


답변

음 indexOf도 저에게 효과적입니다.

var result = from c in SampleList
where c.LongName.IndexOf(SearchQuery) >= 0
select c;


답변

그러한 코드를 사용하십시오

try
{
    using (DatosDataContext dtc = new DatosDataContext())
    {
        var query = from pe in dtc.Personal_Hgo
                    where SqlMethods.Like(pe.nombre, "%" + txtNombre.Text + "%")
                    select new
                    {
                        pe.numero
                        ,
                        pe.nombre
                    };
        dgvDatos.DataSource = query.ToList();
    }
}
catch (Exception ex)
{
    string mensaje = ex.Message;
}


답변

.NET 코어는 이제 EF.Functions.Like




글 탐색

← 이전 글
다음 글 →

최신 글

  • [java] .pem 파일을 읽고 개인 및 공개 키를 얻는 방법
  • [javascript] 페이지의 모든 AJAX 요청에 “후크”추가
  • [android] ListView가 접히지 않고 어떻게 ScrollView에 넣을 수 있습니까?
  • [linux] Apache 서버의 루트 디렉토리를 어떻게 변경합니까? [닫은]
  • [ios] Swift에서 Int를 Hex String으로 변환하는 방법
  • [python] 등급 시스템 기능에서 반복적 인 if-elif 문을 어떻게 단순화 할 수 있습니까?
  • [c#] C #에서 스택 오버플로 예외 포착
  • [windows] Windows의 /usr/local/ssl/openssl.cnf에서 구성 정보를로드 할 수 없습니다
  • [twitter-bootstrap] Bootstrap을 사용하여 모바일에 테이블을 표시하는 방법은 무엇입니까?
  • [windows] BATCH 스크립트에서 무작위로 사용하는 방법은 무엇입니까?

카테고리

태그

.net android angular angularjs arrays asp.net asp.net-mvc bash c c# css database django docker html ios iphone java javascript jquery json linux macos mysql node.js objective-c pandas php postgresql python r reactjs regex ruby ruby-on-rails shell sql sql-server string swift typescript unix visual-studio windows xcode
Copyright © daplus.net - Powered by Naya