Laden...

Nested Set Linq Statement

Erstellt von Curse4Life vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.146 Views
C
Curse4Life Themenstarter:in
452 Beiträge seit 2005
vor 12 Jahren
Nested Set Linq Statement

verwendetes Datenbanksystem: MS SQL Server 2008

Ich erarbeite mir gerade anhand eines Nested Set SQL Tutorials eine DB und versuche nun das lese Statement in Linq umzuwandeln, aber das sieht nicht aus wie das handelsübliche SQL. Könnte mir jemand helfen?

SQL


SELECT n.name,
         COUNT(*)-1 AS level
    FROM tree AS n,
         tree AS p
   WHERE n.lft BETWEEN p.lft AND p.rgt
GROUP BY n.lft
ORDER BY n.lft;

Mein Ansatz:


var tree = from n in db.Categories
				           from p in db.Categories
				           where n.Lft >= p.Lft && n.Rgt <= p.Rgt
				           orderby n.Lft
				           select new
				                  	{
				                  		name = n.Name,
				                  		level = ""
				                  	};

Was mir also noch fehlt ist das "COUNT(*)-1 AS level" und das "GROUP BY n.lft" und ob der rest richtig ist, ist auch die Frage 😃

Danke im vorraus

S
417 Beiträge seit 2008
vor 12 Jahren

Hallo,

kanns grad leider nicht testen, aber es könnte in etwa so aussehen:

var tree = from n in db.Categories
			from p in db.Categories
			where n.Lft >= p.Lft && n.Rgt <= p.Rgt
			group n by n.Name into g
			orderby g.Key
			select new
			  {
				  Name = g.Key,
				  Level = g.Count()
			  };
1.552 Beiträge seit 2010
vor 12 Jahren

Hallo Curse4Life,

aber das sieht nicht aus wie das handelsübliche SQL. Könnte mir jemand helfen?

Meinst du damit folgendes?

FROM tree AS n, tree AS p

Wenn ja, nennt sich das die Kurzschreibweise für CROSS JOIN.

Gruß
Michael

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp