Итак, моя база данных работает так. Каждая компания имеет список пользователей, относящихся к этой Компании. У каждого пользователя есть список Клиентов, относящихся к этому Пользователю. Мне нужен способ эффективно перечислить всех Клиентов, которые косвенно связаны с этой Компанией (Клиент всегда связан с Компанией Пользователя). Это то, что я придумал до сих пор:Более эффективный или более короткий способ написать этот код?
List<User> users = db.Users.Where(u => u.CompanyId == 1 /*this company's Id*/).ToList();
List<Client> clients = new List<Client>();
foreach (User user in users)
{
clients.AddRange(user.Clients);
}
Является ли это лучший способ или есть способ, в котором использовать Linq для SQL в одной строке для оптимизации кода?
Для рабочих частей кода вам необходимо оптимизировать (по времени и/или читабельности), вы должны перейти к [Обзор кода] (http://codereview.stackexchange.com/help/on-topic). –
Это может быть закрыто как код-заглушка в Code Review, потому что это такой маленький фрагмент. Вы должны отправить в аренду весь метод и, возможно, раздел взаимосвязанных методов/классов. – Hosch250
Linq упрощает код; он обычно не оптимизирует его. Например, ваш пример кода, вероятно, будет работать лучше, чем вызов 'SelectMany (...). ToList()', потому что список будет расти более эффективно. – phoog