0
Answer

How to get the query in LINQ of a hierarchical database

Nymhar Quines

Nymhar Quines

11y
1.8k
1
Sample data from table: Table Name - SUPPLIERS and Entity Name - dbData


RECORD_NO     ID_NO      FIRST_BRANCH     SECOND_BRANCH   POSITION
----------------------------------------------------------------
   1      05100242     05100243         05100244         L
   2       05200443     05100245         05100247         L
   3       05100244     05100248                          R
   4       05100245     05100249                           L
   5       05100247     05100250                           R
   6       05100248                                        L
   7       05100249                                        L
   8       05100250                                        L


HIERARCHY ILLUSTRATION



For example in a pyramid organizational chart, how are you going to get the count of A,B and C?

A = 05100242
B = 05100243
C = 05100244

TO GET THE RESULT OF 05100242 I used

LEFT ACCOUNT
var data = dbData.SUPPLIERS.where(x=>x.ID_NO == 05100243);

LEFT
string left = data.FIRST_BRANCH;
var leftbranch = dbData.where(x=>x.ID_NO == left);

RIGHT
string right = data.SECOND_BRANCH;
var leftbranch = dbData.where(x=>x.ID_NO == right);


RIGHT ACCOUNT 
var data2 = dbData.SUPPLIERS.where(x=>x.ID_NO == 05100244);

LEFT
string left2 = data2.FIRST_BRANCH;
var leftbranch = dbData.where(x=>x.ID_NO == left2);

RIGHT
string right2 = data2.SECOND_BRANCH;
var leftbranch = dbData.where(x=>x.ID_NO == right2);


The problem is for every ID_NO, you need to get the 
LEFT AND RIGHT BRANCH and the result is you need to get again the LEFT AND RIGHT. YOU NEED TO REPEAT THIS DEPENDING ON HOW MANY RECORDS AVAILABLE.

THE QUESTION IS WHAT IF THERE ARE
MILLIONS ON RECORDS?

AND RECORDS IS
INCREASING BECAUSE EVERYDAY SUPPLIERS/DEALERS ARE CONTINUE GROWING.