sql >> Databáze >  >> RDS >> Sqlserver

Zápis rekurzivního CTE pomocí syntaxe Entity Framework Fluent nebo Inline syntaxe

AFAIK neexistuje žádná podpora pro rekurzivní CTE v LINQ ani v EF. Řešením je vystavit CTE jako pohled. Článek o rekurzivních nebo hierarchických dotazech pomocí EF Code First a Migrations ukazuje, jak nasadit takový pohled pomocí migrací EF code first.

Pokus o emulaci CTE prováděním rekurzivních iterací na straně klienta se neškáluje na velké soubory dat a vede k chatové výměně se serverem. Všimněte si, jak váš kód EF vrací IEnumerable není IQueryable , to znamená, že zhmotní každou úroveň a poté zřetězí další úroveň pro každý záznam jako samostatný požadavek . Řešení založené na LINQ bude přiměřeně fungovat pro mělké hierarchie s omezeným počtem vstupů (a všimněte si, že mnoho projektů může mít takové rozložení dat, typickým příkladem jsou uživatelské příspěvky/odpovědi), ale budou se hroutit pod hlubokou hierarchií s mnoha prvky.



  1. 2 Funkce pro získání roku z data v Oracle

  2. mysql - kolik sloupců je příliš mnoho?

  3. Monitorování výkonu MySQL pomocí ClusterControl

  4. Jak se připojit k Oracle pomocí JRuby &JDBC