Я бы настоятельно рекомендовал разделить работу и сотрудников в отдельные таблицы, чтобы не дублировать данные о сотрудниках для каждого имеющегося у вас рабочего элемента.
Таким образом, на таблице сотрудников, которая у вас будет - ename,eid (первичный ключ)
и на рабочем столе, который у вас будет - рабочий идентификатор (первичный ключ), дата, работа, eid (внешний ключ для employee.eid)
Вышеуказанное позволиту вас должно быть несколько рабочих элементов для каждого сотрудника, и вам не нужно будет иметь дубликаты данных сотрудников (например, имя и идентификатор) для каждого рабочего элемента.
В любом случае, чтобы ответить на ваш вопрос, вы можете сделать следующее -
var e = (from em in DataContext.Employees
where em.ename = "John Smith"
Select em).Max(x => x.workid);
Тем не менее, вам было бы гораздо лучше делать то, что я предлагаю, поэтому ваш запрос на получение сотрудника мог бы выглядеть следующим образом -
var e = from em in DataContext.Employees
where em.name = "John Smith"
Select em;