이전 프로젝트를 LINQ를 사용하여 마이그레이션하려고하는데 꽤 심각한 문제가 있습니다. 문제는 검색 색인 (동적 속성이있는 CM 시스템)에 동적 테이블 이 있다는 것입니다. 검색 색인에는 검색 가능한 각 속성 {attribute_x, attribute_y, ...}에 대한 열이 있습니다. 이제 문제는 정적으로 어떤 열을 사용할 수 있는지 (또는 검색 인덱스를 나눌 때 어떤 테이블을 사용할 지) 정의 할 수 없다는 것입니다. 따라서이 방법을 즉시 수행해야합니다.동적 테이블에 LINQ to SQL 사용
동적 표현식을 사용해 보았지만 식을 작성하는 데 형식이 필요하며 리플렉션으로 올바른 형식을 생성 할 수 없었습니다. (MemberInfo가 생성되지 않은 것 같습니다).
나는 또한 검색을위한 표현식을 생성 할 수있는 것으로 만족할 수 있습니다 (그러나 이것은 쉬운 일은 아닙니다).
var mySearchIndex= db.GetTable(myTableType); var query = from p in db.Products from idx in mySearchIndex; query = query.Where( "idx." + attributeName + " > 50.0 && idx." + attributeName + "
의 줄에있는 것이 바람직합니다.
누구나이 문제의 해결책을 찾아 냈습니까? 나는 과거 2 일 동안 블로그 포스트와 포럼을 헛되이보고 있었다.
Linq to Dataset은 참으로 흥미 롭습니다. 그러나 나는 그것이 쿼리를 결합하지 않고 오히려 정보 클라이언트 측을 처리한다는 것을 이해합니다. 이는 성능에 큰 영향을줍니다. 또는 나는 이것에 대해 틀렸고 실제로 쿼리를 결합합니까? –
내가 가지고있는 한 가지 생각은 Expression 개체에 sql을 삽입 할 수 있다면 Expression이 존재할 수 있으므로 (SearchIndex에서 1을 선택하십시오.),이 작업을 수행 할 수있는 방법을 찾을 수 없었습니다. –
네 말이 맞아. 그것은 클라이언트 측에서 프로세스를 처리합니다. – Keltex