2010-05-14 4 views
2

이 간단한 2 행의 코드가 있습니다. 그것은 잘 컴파일하지만 결코 datagridview에서 결과를 반환합니다. func을 p=> p.PTNT_FIRST_NAME.StartsWith(this.textBox1.Text)으로 변경하면 잘 작동합니다. 여기서 뭐가 문제 야? Expression<Func<PATIENT, bool>>Func에서 Where 절에 매개 변수로 전달할 때의 문제

Func<PATIENT, bool> func = (PATIENT p) => p.PTNT_FIRST_NAME.StartsWith(this.textBox1.Text); 
this.dataGridView1.DataSource = dataContext.PATIENTs.Where<PATIENT>(func).Select(q => q); 

답변

2

변경 Func<PATIENT, bool>.

+0

. 왜 그것이 처음부터 컴파일됩니까? – user341450

+1

LINQ-to-SQL이 아닌 일반 LINQ 호출로 컴파일됩니다. LINQ-to-SQL은'Expresion ''을 사용하는 확장 메서드 세트이므로'Expression '을 전달해야합니다. – SLaks

2

이 시도 : 이것의 근본 원인 무엇

Expression<Func<PATIENT, bool>> func = (PATIENT p) => p.PTNT_FIRST_NAME.StartsWith(this.textBox1.Text); 
관련 문제