#linq
#linq
Вопрос:
У меня есть одна таблица «Профили» и «Адреса» Таблица профилей содержит одну запись о человеке, а таблица адресов содержит его несколько адресов.
Я хочу написать запрос LINQ, чтобы вернуть запись одного человека с несколькими адресами в одном запросе. Итак, я создал один пользовательский класс с «ProfileID», «FirstName» и списком адресов.
Мне нужен такой вывод, пожалуйста, помогите.
1 (ProfileID)
Отметить (имя пользователя)
——Sanday (адрес один)
——Stronsay (адрес два)
——Foula (адрес три)
public class profileDetails
{
public int profileIdData { get; set; }
public string firstNameData { get; set; }
public List<lstAddress> lstAddressData { get; set; }
}
public class lstAddress
{
public int addressId { get; set; }
public string address { get; set; }
}
//This is my query
var result = (from profile in DbContext.Profiles
join address in DbContext.Addresses
on profile.profileId equals address.addressId
select new profileDetails()
{
profileIdData = profile.profileId,
firstNameData = profile.firstName,
lstAddressData = new { address.addressId, address.address }.toList()
}
)
Комментарии:
1. Взгляните на объединение в группу . Или, лучше, свойства навигации.
Ответ №1:
Вы пробовали использовать метод Include? Что-то вроде этого:
var result = (from profile in DbContext.Profiles
join address in DbContext.Addresses
on profile.profileId equals address.addressId).Include("lstAddressData");
(имя lstAddressData может быть неправильным в моем примере выше, оно относится к ссылочному свойству, которое вы хотите заполнить элементами адреса)