0

기존 문서 관리 응용 프로그램에서 "일반"검색과 전체 텍스트 검색을 결합하려고합니다. 현재 그들은 100 % 분리되어 있습니다. 현재 사용자는 문서에서 사용자 정의 색인을 검색하는 일반 검색을 실행하거나 문서의 내용을 검색하는 전체 텍스트 검색을 실행할 수 있습니다. 그들은 함께 할 수없고 결합 된 결과를 얻을 수 없습니다. 그것이 내가 구현하려고하는 것입니다.SqlQuery를 사용하여 IQueryable <int>을 교차합니다. <int>

정규 검색은 EntityFramework에서 각 검색을 구성하기 위해 조건부 작성기와 Linq To Entities를 사용하여 구현됩니다. 결과는 IQueryable이며, 각 int는 Document 테이블의 기본 키와 일치합니다.

전체 텍스트 검색은 Database.SqlQuery를 사용하여 실행되는 원시 SQL을 생성하여 구현됩니다. Entity Framework는 v6의 전체 텍스트를 지원하지 않습니다. 각 결과 int는 Document 테이블의 기본 키와 일치합니다.

결과로 생성되는 2 개의 IEnumerables에 대해 교차 작업을 수행하는 것은 쉽지만 2 개의 개별 검색을 수행하는 것은 분명합니다. 나는 검색이 현재 어떻게 작동하는지 완전히 다시하지 않고도 데이터베이스를 한 번에 탐색 할 수있는 방법을 찾아 내려하고있다. 나는 연기 된 실행을 잃지 않고 SqlQuery에서 IQueryable로 변환 할 수는 없다고 읽었지만, 누군가가 내가 고려하지 않은 다른 방법을 가지고있을 수도 있다고 생각했다. 감사.

답변

0

검색을 하나의 결합 된 검색으로 수행해야하는 경우 실제로 구현 변경이 필요한 Sql 쿼리를 IQueryable 검색으로 변환해야합니다. 데이터베이스 서버에서 IQueryable과 SqlQuery를 결합하는 다른 방법은 전체 검색 결과를 가져 와서 IQueryable로 변환하는 것입니다.이 작업은 여전히 ​​데이터베이스에 대한 두 번의 개별 트립입니다.