ホームページ > データベース > mysql チュートリアル > SQL Server テーブルからプログラムで C# クラスを生成する方法

SQL Server テーブルからプログラムで C# クラスを生成する方法

Susan Sarandon
リリース: 2024-12-24 08:09:16
オリジナル
906 人が閲覧しました

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

SQL Server のデータベース テーブルからクラスを生成する方法

を使用せずに、SQL Server テーブル オブジェクトから単純なエンティティをクラスとして作成することができます。 ORM。このメソッドは、テーブル スキーマに合わせたクラス構造を生成する簡単な方法を提供します。

手順:

  1. テーブル名の設定:ターゲットの名前を保持する変数 @TableName を宣言します。 table.
  2. クラス構造の生成: テーブル名に基づいて開始括弧とクラス名を使用して文字列 @Result を構築します。
  3. 列の反復: sys.columns および sys.types システム テーブルから列情報 (名前、データ型、NULL 値の可能性) を取得します。ターゲット テーブルの object_id。
  4. Build Class Properties: 各列について、クラス プロパティ宣言を @Result に追加します。プロパティには、列名、データ型、および列で NULL 値が許可されている場合はオプションの NULL 許容文字 (?) が含まれます。データ型は、互換性のために C# の同等の型に変換されます。
  5. クラス コードの生成: 右括弧でクラス構造を完成させ、結果のコードを出力します。これにより、指定されたテーブルのスキーマをミラーリングする C# クラスが提供されます。

例:

列 "Name" (文字列)および「電話」(null 可能)文字列):

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
ログイン後にコピー

出力:

public class Person
{
    public string Name { get; set; }
    public string? Phone { get; set; }
}
ログイン後にコピー

以上がSQL Server テーブルからプログラムで C# クラスを生成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート