Это можно сделать миллионами способов ...
Проблема.
У меня есть список серверов, принадлежащих стране.
В странах есть много серверов, так что это двухсторонняя навигация (я думаю, что это называется)
Теперь у меня есть список серверов с установленной страной, и я хочу сгруппировать их по странам, чтобы я мог получить противоположный список.
Список стран со всеми серверами, подключенными к ICollection of the Country (Серверы)
var groupBy = list.GroupBy(x => x.Country, x => x, (c, s) => new {c, s});
foreach (var country in groupBy)
{
}
Это почти даст мне желаемый результат, но теперь у меня есть 2 типа anon.
C - страна, а S - список серверов.
Как я могу прикрепить список серверов к Коллекции объекта страны.
Классы выглядят так ... упрощенно.
public class Server
{
public short SID { get; set; }
public Country Country { get; set; }
}
public class Country
{
public byte CID { get; set; }
public ICollection<Server> Servers { get; set; }
}
Полагаю, можно создать новую страну с информацией, а затем добавить список серверов в конструктор ... но я думаю, что это излишне.
Ну ... это странно быть простым, но я здесь потерян.
Обновление
Мне нужно выбрать все серверы, которые удовлетворяют некоторому условию. Вот почему у меня есть список серверов со страной. Теперь мне просто нужно инвертировать список. Можно ли это сделать наоборот?
Сначала я использую шаблон репозитория с кодом EF 4.
IRepository
У меня есть только следующие методы с возможностью загружать свойства:
Single, SingleOrDefault, Find and FindAll
Там нет ленивой нагрузки, все они возвращают ICollection или один T.