SQL Server データベースのテーブルを参照し、そのテーブルの DTO クラスを生成し、そのテーブルの各行の DTO クラス インスタンスを生成できるツールまたは手法を探しています。
与えられた SQL Server のテーブル
CREATE TABLE
[dbo].[Tickets](
[TicketID] [int] IDENTITY(1,1) NOT NULL,
[TicketName] [varchar](50) NOT NULL,
CONSTRAINT [PK_Tickets] PRIMARY KEY CLUSTERED ([TicketID] ASC)
データが取り込まれます:
TicketID TicketName
1 Green
2 Blue
プロパティを持つ「Tickets」というクラスを生成します。
public int TicketID {get;set;}
public string TicketName {get;set;}
そして、次のようなもの:
public List<Tickets> LoadDataIntoListOfTickets()
{
List<Tickets> theList = new List<Tickets>;
theList.Add(new Ticket(){TicketID = 1, TicketName = "Green"});
theList.Add(new Ticket(){TicketID = 2, TicketName = "Blue"});
return theList;
}
SQL Server に送信する INSERT ステートメントを生成したくありません。データの DTO クラスとインスタンスを作成したいと考えています。
明確化: DTO クラスのコード生成と、特定の時点で存在するデータの各行の DTO インスタンスのソース コードを探しています。クラスを作成できるさまざまな ORM に精通しています。私が探しているのは、データベース内の各 ROW のソース コード行を含む LoadDataIntoListOfTickets() リストを生成するものです。(うまくいけば、それが明確になります。)
明確化 #2: これは、ユーザーがアプリケーション用の新しいデータベースを作成するときに、テーブルを初期化するためのテキスト ファイル内の SQL INSERT ステートメントを置き換えるために使用されます。SQL INSERT ステートメントを含むテキスト ファイルがあれば、従来のバージョン管理ツールを使用してデータベースの初期化プロセスを管理できました。これは非常にうまく機能しますが、DTO インスタンスにデータを格納する場合ほど人間が読める形式 (空白/配置) や再利用可能ではありません。XML にシリアライズすると、可読性が低下します。バイナリ シリアライゼーションは (本質的に) 人間が判読できないものにし、また、以前のバージョンとの意味のある比較/マージを行うことをほぼ不可能にします。
これを行うことができるツールまたはライブラリを知っている人はいますか?