2014-06-13 6 views
0
등가

년에 추가하는 I가 내가Linq는 SQL이

var idlist = new int[] { 28,24,16,13,14,15 }; 
var badWords = _db.Restrictions.Where(x => x.Value.Length == 4 && x.Status_ID == 1 && x.RestrictionType.Status_ID == 1 && idlist.Contains(x.RestrictionType) ); 
를 다음과 같이 내 타입의 ID가 특정 ID 목록을 withing에되어 있는지 확인하는 쿼리를 추가하려고 지금

var badWords = _db.Restrictions.Where(x => x.Value.Length == 4 && x.Status_ID == 1 && x.RestrictionType.Status_ID == 1); 

잘 작동이 쿼리

그러나이 '[] INT'

오류 5가 포함되어하에 오류가 '포함'에 대한 정의 및 최고의 확장 메서드 오버로드 'System.Linq.Queryable.Contains 포함되어 있지 않습니다 (System.Linq.IQueryable,TSource)는 '

&& x.RestrictionType.Status_ID == 1 

RestrictionType이 하위 오브젝트 있음을 나타냅니다 일부 잘못된 인수

+0

, 난 강력하게 그것이 아니다 의심 'int'? 만약 열거 형이라면, 명시 적으로 다음과 같이 캐스팅 해보십시오 :'... && idlist.Contains ((int) x.RestrictionType)' – chridam

+0

@chridam 질문을 보면 실제로 엔티티입니다. 원래 버전은 하위 속성을 테스트합니다. –

+0

@MarcGravell 그렇기 때문에 'x.RestrictionType.Status_ID == 1'비교가 필요하지 않지만'idlist'에'1'을 포함시킬 필요는 없습니다. – chridam

답변

1

귀하의 단일 값 상태 시험이있다; 아마도, 다음, 당신은 제한 형의 특정 인스턴스에 대해 테스트하려고 :

&& idlist.Contains(x.RestrictionType.Id) 
0

체크 x.RestrictionType``의`Type` 무엇이

var badWords = _db.Restrictions.Select(x => x.Id).Except(idlist); 
badWords=badWords.Where(x => x.Value.Length == 4 && x.Status_ID == 1 && x.RestrictionType.Status_ID == 1); 
+0

이 코드는 문제를 해결하는 데 도움이 될 수 있지만 코드 만 대답하면 품질이 좋지 않습니다. 더 나은 대답은 코드의 기능, 삽입되는 위치,이 접근 방식이 선택된 이유 및 관련 문서에 대한 링크를 설명합니다. –