У меня есть таблица сотрудников. У каждого сотрудника есть менеджер, и у каждого менеджера есть менеджер и так далее. Итак, для менеджера я хочу сделать запрос, чтобы у меня были все члены моей команды, и у меня есть все члены их команды и так далее. Каков наилучший способ сделать это в инструкции EF Linq. В идеале я хочу список сотрудников и знаю, в какой команде они находятся.Как запросить таблицу саморегуляции
ответ
Я не уверен на 100%, как вы решаете это в EF, и я думаю, что это может закончиться множеством запросов (по одному для каждого менеджера если вам не повезло). Как я бы это сделал, это начать с вашего верхнего сотрудника и получить всех сотрудников, у которых есть менеджер в качестве менеджера. Затем я рекурсивно возьму всех менеджеров из набора сотрудников, которые вы только что получили, и извлеките свои идентификаторы. Когда у вас есть все идентификаторы, вы можете запросить db для сотрудников, у которых есть какой-либо из идентификаторов в качестве своего менеджера.
Вы меня поняли? Это приведет к запросу на уровень вместо одного запроса на одного менеджера. Но, возможно, EF решает эту проблему, я не уверен. Но я думаю, вам нужно сделать это рекурсивно.
я бы стремиться к чему-то вроде:
public IList<Employees> GetEmployeesForManager(int managerId)
{
return GetEmployeesForManagers(new List<int>() { managerId });
}
public IList<Employees> GetEmployeesForManagers(IList<int> managerIds)
{
var listOfEmployees = // Get the employees
var listOfManagers = listOfEmployees.Where(y => y.IsManager).Select(y => y.Id).ToList();
if(listOfManagers.Count >= 0)
listOfEmployees.AddRange(GetEmployeesForManagers(listOfManagers));
return listOfEmployees;
}
- 1. JSP/Struts2/Hibernate: прокрутите таблицу саморегуляции
- 2. как запросить таблицу?
- 3. Вставьте данные для саморегуляции в таблицу копирования
- 4. Как создать таблицу с полями саморегуляции в MySQL?
- 5. Как запросить таблицу, в sqlalchemy
- 6. Как запросить пользовательскую таблицу соединений
- 7. SQL-запрос саморегуляции. ПРИСОЕДИНЯЙТЕСЬ
- 8. Запросить таблицу в Back4app
- 9. Совокупная таблица саморегуляции
- 10. Запросить унаследованную таблицу через таблицу соотношений
- 11. Как улучшить реализацию шаблона саморегуляции?
- 12. не удалось запросить таблицу псевдонимов
- 13. Запросить таблицу на основе ID
- 14. Как запросить таблицу с другим владельцем таблицы
- 15. Как запросить таблицу поиска для уникальных значений?
- 16. Как запросить таблицу для нескольких условий
- 17. Как запросить объединенную таблицу (has_and_belongs_to_many) в контроллере
- 18. Как запросить таблицу Avro в Spark SQL
- 19. Как запросить таблицу по значению Их
- 20. Как запросить YQL RSS таблицу PubDate
- 21. Как запросить таблицу БД из C++
- 22. Как запросить следующую сводную таблицу в MySQL?
- 23. Как запросить таблицу col для нескольких значений
- 24. Как запросить таблицу ассоциаций в SQLAlchemy?
- 25. путать о том, как запросить эту таблицу
- 26. Как запросить несколько повторяющихся столбцов таблицу BiqQuery
- 27. Как запросить таблицу ассоциаций в SQLAlchemy?
- 28. Как запросить таблицу sys_user с помощью REST?
- 29. Как запросить таблицу разделов в BigQuery
- 30. Как запросить таблицу ARP на iPhone?
Я смотрел вокруг с Google, и вы можете быть правы. – arame3333
И тогда я обязательно поеду за своим решением :). Я думаю, вы можете сделать это с некоторыми действительно сложными лямбдами, но в чем смысл, когда вы можете сохранить его простым? Это решение гарантирует, что вы хотите иметь больше запросов, чем у вас есть уровни в вашей организации. –
Код нуждается в убирании. При добавлении в коллекцию вы должны использовать метод AddRange – arame3333