2014-02-12 2 views
1

Я пытаюсь объединить два поля, например. FullName = FirstName + LastNameКак объединить два поля в LINQ?

Как я могу выполнить в следующем коде?

IEnumerable<Item> Items = from item in _entities.Items 
where Item.ID == Id 
orderby contractItem.Item.ItemName 
select new Item 
{ 
    Id = item.ID, 
    ... 
    CreatedBy = (from employee in _entities.Employees 
       where employee.UserID == item.CreatedBy 
       select new { 
          FirstLast = employee.FName + " " + employee.LName}).FirstOrDefault(), // <---- gives me an error 
    ... 
}; 
+0

какая ошибка это дает вам? – gingerbreadboy

ответ

4

Похоже CreatedBy в Item является тип string собственности и поскольку в вашем запросе вы используете select new это создает анонимный тип. Вы можете изменить это нравится:

(from employee in _entities.Employees 
    where employee.UserID == contractItem.CreatedBy 
    select employee.FName + " " + employee.LName).FirstOrDefault() 

Таким образом, ваш полный запрос будет, как:

IEnumerable<Item> Items = from item in _entities.Items 
where Item.ID == Id 
orderby contractItem.Item.ItemName 
select new Item 
{ 
    Id = item.ID, 
    ... 
    CreatedBy = (from employee in _entities.Employees 
       where employee.UserID == item.CreatedBy 
       select employee.FName + " " + employee.LName).FirstOrDefault(), 
}; 
+0

спасибо. Это сработало. – Lakhae

+0

@Lakhae, добро пожаловать – Habib

Смежные вопросы