내 linq에서 SQL 쿼리에 식 트리를 사용하려고합니다. 그리고 EF5를 사용합니다.
나는 다음과 같은 방법을 썼다.
private Expression<Func<Tbl1, bool>> Expr1()
{
return tbl1 => tbl1.FSystemCode == (int)comboBoxSystemCode.SelectedValue;
}
내 쿼리는 다음과 같습니다.
private object bindingSourceTbl1_DataSourceBinding(object sender, EventArgs e)
{
using (SampleDbEntities dbo = new SampleDbEntities())
{
return dbo.Tbl1.Join(dbo.Tbl2, x => x.Id, y => y.Tbl1Id, (x, y) => new { Tbl1 = x, Tbl2 = y }).Where(this.Expr1()).Where(a => a.Tbl2.Tbl6Id == (int)comboBoxTbl6.SelectedValue).Select(a => a.Tbl1).ToList();
}
}
그러나이 .Where (this.Expr1 ()) 런타임에 실패합니다.
올바른 코드를 작성하도록 도와주세요.
이 변경으로 내 문제를 해결 했으며이 작업은 다음과 같습니다.
private object bindingSourceTbl1_DataSourceBinding(object sender, EventArgs e)
{
using (SampleDbEntities dbo = new SampleDbEntities())
{
return dbo.Tbl1.Join(dbo.Tbl2, x => x.Id, y => y.Tbl1Id, (x, y) => new { Tbl1 = x, Tbl2 = y }).Where(a => a.Tbl2.Tbl6Id == (int)comboBoxTbl6.SelectedValue).Select(a => a.Tbl1).Where(Expr1()).ToList();
}
}
나는 이것이 사실이라고 생각한다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다