작동하지 :C# 술어 빌더 나는 다음과 같은 코드에서 술어 빌더를 사용하는 것을 시도하고있다
public ListResults<DBAccountDetail> GetAccountDetail(string[] salesForceKey)
{
try
{
using (var c = new SalesForceDataContext())
{
var predicate = PredicateBuilder.False<DBAccountDetail>();
foreach (var keyword in salesForceKey)
{
var temp = keyword;
predicate = predicate.Or(p => p.Id.Contains(temp));
}
var lret = c.DBAccountDetails.AsQueryable().Where(predicate).ToList();
return new ListResults<DBAccountDetail>(lret);
}
}
catch (Exception ex)
{
LogError("GetLegacyRateLetters()", ex);
return new ListResults<DBAccountDetail>(ex);
}
}
문제는이 라인에 있다는 것입니다 :
predicate = predicate.Or(p => p.Id.Contains(temp));
이
p.Id
밖으로 인텔리 않을 것이며을 던졌습니다 컴파일 오류 :
No overload for method 'Or' takes 1 arguments
DBAccountDetail.Id는 어떤 유형입니까? 그것이 int 인 경우 문자열을 "포함"할 수있는 방법을 물어볼 것입니다. – StriplingWarrior
문자열입니다. 나는 실제로 사용하고 싶다 : (p => p.Id == temp) –
당신이 받고있는 전체 오류를 붙여주세요. 내가 할 수있는 한 그것이 효과가 있다고 말할 수있다. –