2014-02-18 3 views
0

내 저장소에 부울을 반환하는 메서드가 있습니다. 그것의 역할은 전달 된 값을 찾아서 personnel_key 열에있는 테이블의 ANY에 해당 값이 있는지 확인하는 것입니다. 그래서 예를 들면 : 그 테이블 중 하나에서 찾고 어떻게많은 테이블의 열에서 값을 찾고

public bool IsPersonnelKeyDuplicate(string per_k) 
{ 
    var result = (from f in this.Context.Personnel where f.personnel_key == per_k select f).Any(); 
    return result; 
} 

는 그래서입니다. 하지만이 방법에 추가 할 테이블이 20 개 더 있습니다. 이 일을하는 좋은 방법은 무엇입니까? 나는이 모든 ".Any()"문장의 큰 "OR"를 쓰라고 제안 하시겠습니까?

감사합니다.

+0

모든 테이블을 검색하는 대신 외래 키를 사용해야합니다. 데이터베이스는 이런 종류의 작업에 매우 적합합니다. – MrFox

답변

1

게시자가 게시 한 LINQ와 같은 엔티티 만 사용할 수 있습니다. 그렇다면 그렇습니다. 그것은 갈 길입니다. 그러나 데이터베이스를 N 번 쿼리하면 매우 비효율적입니다. 보통 ADOSQL 명령을 사용할 수 있는지 확인한 다음 N 번이 아닌 한 번만 데이터베이스를 쿼리합니다.

관련 문제