Generieren von Klassen aus SQL Server-Tabellen
Das Generieren von Klassen aus Datenbanktabellen kann den Datenzugriff optimieren und eine greifbare Darstellung der Datenstruktur bereitstellen. In diesem Artikel wird eine einfache Methode zum Erstellen von Entitäten als einfache Klassen untersucht.
Erstellen der Entitäten
Betrachten wir eine Tabelle mit dem Namen „Person“ mit dem folgenden Schema:
+----+-------+----------------+ | ID | Name | Phone | +----+-------+----------------+ | 1 | Alice | (555) 555-5550 | | 2 | Bob | (555) 555-5551 | | 3 | Cathy | (555) 555-5552 | +----+-------+----------------+
Um die entsprechende Klasse zu generieren, können wir das folgende SQL-Skript verwenden:
set @TableName sysname = 'TableName' 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 'bigint' then 'long' when 'binary' then 'byte[]' when 'bit' then 'bool' when 'char' then 'string' when 'date' then 'DateTime' when 'datetime' then 'DateTime' when 'datetime2' then 'DateTime' when 'datetimeoffset' then 'DateTimeOffset' when 'decimal' then 'decimal' when 'float' then 'double' when 'image' then 'byte[]' when 'int' then 'int' when 'money' then 'decimal' when 'nchar' then 'string' when 'ntext' then 'string' when 'numeric' then 'decimal' when 'nvarchar' then 'string' when 'real' then 'float' when 'smalldatetime' then 'DateTime' when 'smallint' then 'short' when 'smallmoney' then 'decimal' when 'text' then 'string' when 'time' then 'TimeSpan' when 'timestamp' then 'long' when 'tinyint' then 'byte' when 'uniqueidentifier' then 'Guid' when 'varbinary' then 'byte[]' when 'varchar' then 'string' else 'UNKNOWN_' + typ.name end ColumnType, case when col.is_nullable = 1 and typ.name in ('bigint', 'bit', 'date', 'datetime', 'datetime2', 'datetimeoffset', 'decimal', 'float', 'int', 'money', 'numeric', 'real', 'smalldatetime', 'smallint', 'smallmoney', 'time', 'tinyint', 'uniqueidentifier') 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
By Wenn Sie dieses Skript ausführen, erhalten Sie die entsprechende Klassendefinition für die Tabelle „Person“, die dann in Ihren Anwendungen verwendet werden kann.
Dieser Ansatz gibt Ihnen die Kontrolle über die generierte Klasse und stellt sicher, dass sie die spezifischen Anforderungen erfüllt Ihres Projekts.
Das obige ist der detaillierte Inhalt vonWie kann ich C#-Klassen aus SQL Server-Tabellen generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!