SQLサーバーデータベースをポイントしてスキーマを読み取り、テーブルからc#インターフェイスクラスを生成するツールの方法を知っている人はいますか?
たとえば、「Name」列、「Address」列、「Phone」列を持つ「Customers」というテーブルがあるとすると、文字列Name{get;set;}文字列Address{get ;set;}およびintPhone{get; set;}
「不完全な」コードジェネレーターを使用していますが、これらのインターフェイスは生成されません。
SQLサーバーデータベースをポイントしてスキーマを読み取り、テーブルからc#インターフェイスクラスを生成するツールの方法を知っている人はいますか?
たとえば、「Name」列、「Address」列、「Phone」列を持つ「Customers」というテーブルがあるとすると、文字列Name{get;set;}文字列Address{get ;set;}およびintPhone{get; set;}
「不完全な」コードジェネレーターを使用していますが、これらのインターフェイスは生成されません。
Linq to Sql O / R Designerはどうですか?
私はそれを行うツールを知りませんが、あなたがそれを自分で非常に簡単に行うことができることは確かです!
クラスのヘッダーを含む文字列と、フッターを含む別の文字列を設定します。
次に、テーブルという名前の新しいテキストファイルを作成します。
ヘッダーをファイルに書き込みます。
本文については、テーブルを読み取るループを作成するだけです。このループは、フィールドの名前とタイプを抽出し、その情報を使用してインターフェイスを作成します。
最後に、フッターをファイルに書き込みます。
そこにあなたはあなたの真新しいインターフェースで行きます!
(インターフェイスは単なるプレーンテキストファイルであるため、非常に簡単です...)
すでにクラスを生成しているので、Resharpersの「ExtractInterface」リファクタリングを使用できると思います。
みなさんのご意見ありがとうございます
あなたはSQLMetal.exe
仕事の一部を成し遂げるために使うことができます。インターフェイスが必要なように聞こえますが、これにより具体的なクラスが作成されます。を検索/置換class
しinterface
、名前を変更するのは簡単な作業です。
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\SqlMetal.exe
または、VisualStudioのコマンドプロンプトを開きます。sqlmetal /server:myserver /database:myDB /user:myUser /pwd:myPwd /language:csharp /code:myDB.cs
SQLMetalのMSDNページにあるその他のオプション。
コード生成テンプレートをカスタマイズできるツールが必要です。Enterprise Architect、またはCodeSmithを検討しましたか?
他にもたくさんあります-モデル駆動型アーキテクチャに行きたいと思うかもしれません。UMLでソリューションを設計し、UMLモデルからデータベースとコードを生成します。これには、 MagicDrawやMavenなどのツールを組み合わせて使用できます。
私のSqlSharpenerプロジェクトでは、設計時にSQLファイルを解析してメタモデルを作成し、それを使用してT4テンプレートで任意のタイプのコードを生成できます。たとえば、Entity FrameworkCodeFirstエンティティを作成できます。
MyGenerationを使用することもできます