我正在尝试在我的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();
}
}
但在运行时失败了。所以(this.Expr1())
请帮我写正确的代码。
答案 0 :(得分:0)
我通过这个改变解决了我的问题,这对我有用:
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();
}
}
我认为这一定是真的。