Heim > Datenbank > MySQL-Tutorial > Wie generiert man programmgesteuert C#-Klassen aus SQL Server-Tabellen?

Wie generiert man programmgesteuert C#-Klassen aus SQL Server-Tabellen?

Susan Sarandon
Freigeben: 2024-12-24 08:09:16
Original
904 Leute haben es durchsucht

How to Programmatically Generate C# Classes from SQL Server Tables?

So generieren Sie eine Klasse aus einer Datenbanktabelle in SQL Server

Das Erstellen einfacher Entitäten als Klassen aus SQL Server-Tabellenobjekten ist ohne Verwendung möglich ORM. Diese Methode bietet eine einfache Möglichkeit, Klassenstrukturen zu generieren, die mit dem Tabellenschema übereinstimmen.

Schritte:

  1. Tabellennamen festlegen: Deklarieren Sie eine Variable @TableName, die den Namen der Zieltabelle enthält.
  2. Klasse generieren Struktur: Erstellen Sie eine Zeichenfolge @Result mit der Startklammer und dem Klassennamen basierend auf dem Tabellennamen.
  3. Über Spalten iterieren: Spalteninformationen abrufen (Name, Datentyp, NULL-Zulässigkeit) aus den Systemtabellen sys.columns und sys.types, gefiltert nach der Objekt-ID des Ziels Tabelle.
  4. Klasseneigenschaften erstellen: Hängen Sie für jede Spalte eine Klasseneigenschaftsdeklaration an @Result an. Zu den Eigenschaften gehören der Spaltenname, der Datentyp und das optionale Nullable-Zeichen (?), wenn die Spalte Nullwerte zulässt. Datentypen werden aus Kompatibilitätsgründen in C#-Äquivalente konvertiert.
  5. Klassencode generieren: Vervollständigen Sie die Klassenstruktur mit einer schließenden Klammer und drucken Sie den resultierenden Code aus. Dadurch wird eine C#-Klasse bereitgestellt, die das Schema der angegebenen Tabelle widerspiegelt.

Beispiel:

Betrachten Sie eine Tabelle mit dem Namen „Person“ mit den Spalten „Name“ ( Zeichenfolge) und „Telefon“ (nullbar). string):

declare @TableName sysname = 'Person'
declare @Result varchar(max) = 'public class ' + @TableName + '
{'

select @Result = @Result + '
    public ' + ColumnType + NullableSign + ' ' + ColumnName + ' { get; set; }
'
from
(
    select 
        replace(col.name, ' ', '_') ColumnName,
        column_id ColumnId,
        case typ.name 
            when 'varchar' then 'string'
            else 'UNKNOWN_' + typ.name
        end ColumnType,
        case 
            when col.is_nullable = 1 and typ.name = 'varchar' 
            then '?' 
            else '' 
        end NullableSign
    from sys.columns col
        join sys.types typ on
            col.system_type_id = typ.system_type_id AND col.user_type_id = typ.user_type_id
    where object_id = object_id(@TableName)
) t
order by ColumnId

set @Result = @Result  + '
}'

print @Result
Nach dem Login kopieren

Ausgabe:

public class Person
{
    public string Name { get; set; }
    public string? Phone { get; set; }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie generiert man programmgesteuert C#-Klassen aus SQL Server-Tabellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage