Что Пользователи Таблица действительно плохо спроектирована, ИМО.Если вы сохраняете макет таблицы, переименуйте его UserProperties .Кроме того, ваш пример кода не соответствует разметке таблицы или предлагаемым результатам.
При этом вы можете сделать что-то вроде этого:
var firstnames = from user in context.Users
where user.PropertyType == 1
select new { Id = user.UserID,
Firstname = user.PropertyValue };
var lastnames = from user in context.Users
where user.PropertyType == 2
select new { Id = user.UserID,
Lastname = user.PropertyValue };
var users = from fn in firstnames
join ln in lastnames on fn.Id equals ln.Id
select new { Id = fn.Id,
Firstname = fn.Firstname,
Lastname = ln.Lastname };
var query = from order in context.Orders
join user in users on order.UserID equals user.Id
select new { /*what you need to select*/ };
Одна хорошая вещь в Entity Framework - эточто фактические запросы SQL откладываются как можно дольше.Так что просто запрос имени и фамилии не будет генерировать соединение с базой данных.Это приходит позже.К сожалению, из-за дизайна вашего стола эти преимущества EF действительно затруднены.