Verwendung von C# und dem Enterprise Library Data Access Layer (ELD), um automatisch Aufzählungen für Datenbanksuchwerte zu erstellen
In diesem Artikel wird beschrieben, wie Sie den Enterprise Library Data Access Layer (ELD) nutzen, um automatisch eine Aufzählung aus Werten zu erstellen, die in einer Datenbank-Nachschlagetabelle gespeichert sind.
Dynamische Generierung der Aufzählungsassembly
Erstellen Sie in Ihrer Lösung ein separates Konsolenanwendungsprojekt. Dieses Projekt ist für die Generierung der Aufzählungsassembly verantwortlich. Definieren Sie ein EnumBuilder
und verwenden Sie MyDataAdapter
und MyDataSet
, um Daten aus der Datenbank abzurufen. Erstellen Sie für jede Zeile in der Datenbank ein Aufzählungsliteral, fügen Sie sie zu EnumBuilder
hinzu und erstellen Sie schließlich die Aufzählung. Speichern Sie die generierte Baugruppe am gewünschten Ort.
Beispielcode:
<code class="language-csharp">// 获取当前应用程序域。 AppDomain currentDomain = AppDomain.CurrentDomain; // 创建一个动态程序集。 AssemblyName name = new AssemblyName("MyEnums"); AssemblyBuilder assemblyBuilder = currentDomain.DefineDynamicAssembly(name, AssemblyBuilderAccess.RunAndSave); // 定义一个动态模块。 ModuleBuilder moduleBuilder = assemblyBuilder.DefineDynamicModule(name.Name, name.Name + ".dll"); // 定义一个枚举。 EnumBuilder myEnum = moduleBuilder.DefineEnum("EnumeratedTypes.MyEnum", TypeAttributes.Public, typeof(int)); // 从数据库获取数据。 MyDataAdapter someAdapter = new MyDataAdapter(); MyDataSet.MyDataTable myData = myDataAdapter.GetMyData(); foreach (MyDataSet.MyDataRow row in myData.Rows) { myEnum.DefineLiteral(row.Name, row.Key); } // 创建枚举。 myEnum.CreateType(); // 保存程序集。 assemblyBuilder.Save(name.Name + ".dll");</code>
Fügen Sie einen Verweis auf die generierte Assembly hinzu
Referenzieren Sie dynamisch generierte Assemblys in anderen Projekten in der Lösung. Dadurch können Sie in der generierten Assembly definierte Aufzählungen verwenden und die IntelliSense-Funktionalität einbinden.
Post-Build-Ereignisse konfigurieren
Fügen Sie ein Post-Build-Ereignis im EnumeratedTypes
-Projekt hinzu. Dieses Ereignis startet das Projekt und generiert nach jedem Build MyEnums.dll
-Dateien.
Andere Hinweise
Konfigurieren Sie die Build-Reihenfolge von Projekten so, dass EnumeratedTypes
Projekte zuerst erstellt werden. Dadurch werden Abhängigkeitsprobleme im Zusammenhang mit der generierten Assembly vermieden.
Indem Sie diese Schritte befolgen, können Sie automatisch Aufzählungen basierend auf Werten aus einer Datenbank-Nachschlagetabelle erstellen und so sicherstellen, dass Ihre Aufzählungen mit der Datenbank synchron bleiben, ohne dass manuelle Aktualisierungen erforderlich sind.
Das obige ist der detaillierte Inhalt vonWie kann ich mit Enterprise Library Data Access automatisch C#-Enums aus Datenbanksuchwerten generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!