Как преобразовать это в инфраструктуру сущности
Emp
______
EmpID
Fname
Lname
PostID
Post
______
PostID
Position
Select e.Fname, e.Lname, p.Position from Emp e inner join Post p
on e.PostID = p.PostID
и привязать к DataGridView
Пробный:
var query = db.Employees.Include("Position") // source
.Join(db.Positions, // target
c => c.PosID, // FK
cm => cm.PosID, // PK
(c, cm) => new { Employees = c, Positions = cm }) // project result
.Select(x => x.Employees).Where(m => m.Fname.Contains(txtSrchFirstName.Text) && m.City.Contains(txtSrchCity.Text));
.Select(x => new { x.EmpID, x.Lname, x.Fname, x.Position, x.City}); // select result
GridView1.DataSource = query1.ToList();
GridView1.DataBind();
С головы до головы:
var query1 = from e in Emp
join p in Post
on e.PostID equals p.PostID
select new {e.Fname, e.Lname, p.Position};
Запрос jmcihinney эквивалентен вашему sql-запросу, однако, как правило, с EF вы пытаетесь использовать свойства навигации для доступа к связанным данным, чтобы вам не приходилось описывать отношения между объектами в каждом запросе.
Вам нужно только написать
var query = from e in db.Employees
from p in e.Posts
select new { e.EmpID, e.Lname, e.Fname, p.Position, p.City});
NB
Я не знаю, откуда приходит город, это не в вашем исходном запросе, а в пробной версии, а во-вторых, для этого требуется правильное определение отношения (с навигационным свойством) в модели.