Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menjana C# Enum secara Automatik daripada Jadual Carian Pangkalan Data?
Menjana penghitungan C# secara automatik daripada jadual carian pangkalan data
Latar belakang:
Dalam aplikasi perusahaan, nilai carian yang biasa digunakan sering disimpan dalam jadual pangkalan data untuk penyelenggaraan yang lebih mudah. Apabila bekerja dengan data sedemikian dalam kod C#, anda mungkin mahu menentukan penghitungan yang mencerminkan nilai dalam jadual untuk keselamatan jenis dan kejelasan kod. Walau bagaimanapun, mengekalkan penghitungan ini secara manual boleh menjadi membosankan apabila perubahan dibuat pada jadual carian.
Penjanaan penghitungan dinamik:
Untuk menangani cabaran ini, penghitungan perlu dibuat dan dikemas kini secara automatik berdasarkan nilai dalam jadual carian pangkalan data. Ini boleh dicapai melalui penjanaan kod, walaupun penyelesaian automatik sepenuhnya lebih diutamakan.
Kaedah penjanaan kod:
Pendekatan yang cekap ialah mencipta projek berasingan untuk menjana penghitungan. Projek ini akan mengandungi kod yang mengekstrak nilai daripada pangkalan data, membina definisi penghitungan, dan menyusunnya ke dalam perhimpunan.
Kod sampel:
<code class="language-csharp">// 基于数据库值动态定义枚举 AssemblyName assemblyName = new AssemblyName("MyEnums"); AssemblyBuilder assemblyBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.RunAndSave); ModuleBuilder moduleBuilder = assemblyBuilder.DefineDynamicModule(assemblyName.Name, assemblyName.Name + ".dll"); EnumBuilder myEnum = moduleBuilder.DefineEnum("MyEnum", TypeAttributes.Public, typeof(int)); // 从数据库检索数据 MyDataAdapter dataAdapter = new MyDataAdapter(); MyDataSet.MyDataTable myData = dataAdapter.GetMyData(); // 基于数据库行定义枚举文字 foreach (MyDataSet.MyDataRow row in myData.Rows) { myEnum.DefineLiteral(row.Name, row.Key); } // 创建枚举类型 myEnum.CreateType(); // 保存程序集 assemblyBuilder.Save(assemblyName.Name + ".dll");</code>
Kelebihan penjanaan kod:
Dengan menjana penghitungan secara dinamik, anda memastikan ia kekal selari dengan jadual carian pangkalan data. Ini menghapuskan keperluan untuk penyelenggaraan manual, mengurangkan pertindihan kod dan memberikan fleksibiliti yang lebih baik.
Integrasi dengan projek lain:
Setelah pemasangan enum dijana, ia boleh dirujuk oleh projek lain, membolehkan pembangun bekerja dengan nilai enum yang ditentukan secara dinamik dan mendapatkan sokongan IntelliSense.
Untuk acara pasca binaan yang dijana secara automatik:
Untuk mengautomasikan sepenuhnya proses ini, anda boleh menambahkan acara pasca binaan pada projek binaan penghitungan anda yang mencetuskan proses binaan selepas setiap binaan, memastikan penghitungan sentiasa dikemas kini.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana C# Enum secara Automatik daripada Jadual Carian Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!