Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Apakah ada cara praktis untuk menggunakan tipe data hierarkiID dalam kerangka entitas 4?

Yah, sepertinya saya mendapatkan tampilan tetapi tidak ada tanggapan. Saya memiliki beberapa kebutuhan mendesak untuk bekerja dengan struktur hierarki di atas SQL, jadi saya mengumpulkan kelas pembantu statis. Saya tidak menganggap ini sebagai solusi lengkap, tetapi sejauh ini bekerja dengan relatif baik. PadPath benar-benar fungsi kritis di sini.

public static class SQLHierarchyManipulatin {
    const int   DEFAULT_PAD_LEN     = 3;
    const char  DEFAULT_PAD_CHAR    = '0';

    public static string PadPath(string Hierarchy) {
        return PadPath (Hierarchy, DEFAULT_PAD_LEN);
    }       
    public static string PadPath(string Hierarchy, int padLen) {
        string[]    components  = Hierarchy.Split('/');

        for (var i = 0; i < components.Length; i++ ) {
            if (components[i] != "") {
                components[i] = components[i].PadLeft(padLen, DEFAULT_PAD_CHAR);
            }
        }
        return string.Join("/", components);
    }

    public static int CurrentNodeIndex(string Hierarchy) {
        string[]    components  = Hierarchy.Split('/');
        string      startItem   = components[components.Length - 2]; //one slot back from trailing slash

        return int.Parse(startItem);
    }

    public static string ParentPath (string Hierarchy) {
        return  Hierarchy.Substring(0, Hierarchy.TrimEnd('/').LastIndexOf('/') + 1);
    }

    public static string AppendChildWithPadding (string Hierarchy, int childIndex, int padLen) {
        return AppendChild(Hierarchy, childIndex, DEFAULT_PAD_LEN);
    }
    public static string AppendChildWithPadding (string Hierarchy, int childIndex) {
        return AppendChild(Hierarchy, childIndex, DEFAULT_PAD_LEN);
    }
    public static string AppendChild (string Hierarchy, int childIndex) {
        return AppendChild(Hierarchy, childIndex, DEFAULT_PAD_LEN);
    }
    public static string AppendChild (string Hierarchy, int childIndex, int padLen) {
        return Hierarchy + childIndex.ToString().PadLeft(padLen, DEFAULT_PAD_CHAR) + "/";
    }
}

Semoga ini bisa membantu seseorang! Meskipun, saya masih ingin mendengar dari orang-orang.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server:Bagaimana cara menggunakan UNION dengan dua kueri yang KEDUAnya memiliki klausa WHERE?

  2. Apa itu STATISTIK IO di SQL Server?

  3. Menghilangkan nilai duplikat hanya berdasarkan satu kolom tabel

  4. Kesalahan SQL Server:ExecuteNonQuery:Properti koneksi belum diinisialisasi

  5. Penggunaan xml.modify untuk memasukkan parameter ke dalam elemen tertentu dari kolom xml