我认为可以这样实现:
var query =
from a in db.a
join b in db.b on a.id=b.id
select new {a.id,..,b.id,...}
if(this.txt1.Text!="")
query = query .Where(a=>a.Title.Contains(this.txt1.Text));
if(this.txt2.Text!="")
query = query .Where(a=>b.Title.Contains(this.txt2.Text));