Visual Studio .NET 2008または2005を使用すると、SQL Serverデータベーステーブルの各列のプロパティを自動的に生成する方法はありますか?SQL Serverデータベースからプロパティを自動的に作成する方法はありますか?
私はこれを行う他のコード生成ソフトウェアが存在すると仮定しています。 Visioで私のデータベースに接続でき、テーブル別にダイアグラムを生成することができます。これはこれに似ています。
Visual Studio .NET 2008または2005を使用すると、SQL Serverデータベーステーブルの各列のプロパティを自動的に生成する方法はありますか?SQL Serverデータベースからプロパティを自動的に作成する方法はありますか?
私はこれを行う他のコード生成ソフトウェアが存在すると仮定しています。 Visioで私のデータベースに接続でき、テーブル別にダイアグラムを生成することができます。これはこれに似ています。
Linq2SQLは、.NET 3.5(VS2008)であなたが探しているものです。
は、サーバーエクスプローラドラッグを使用したデータベースへの接続を作成し、あなたのソリューション/プロジェクト
にLinq2SQL DBMLファイルを追加し、テーブルは/ビュー/ストアドプロシージャ
コード生成があなたのために行われているドロップします。 ..(そしてそのクールクール:))
チェックアウトMyGeneration
mygenerationは本当にとてもクールで、データアクセス、エンティティクラスなどのための "通常の"クラスを生成するために多くの鉱石の力を与える独自のテンプレートを作成することもできます
CodeSmith:
<%--
Name: Database Table Properties
Authors: Paul Welter , Yordan Georgiev
Description: Create a list of properties from a database table with a region for each prop
--%>
<%@ CodeTemplate Language="C#" TargetLanguage="C#" Debug="False" Description="Create a list of properties from database table." %>
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="Context" Description="Table that the object is based on." %>
<%@ Map Name="CSharpAlias" Src="System-CSharpAlias" Description="System to C# Type Map" %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>
<% foreach (ColumnSchema column in this.SourceTable.Columns) { %>
#region <%= StringUtil.ToPascalCase(column.Name) %>
private <%= CSharpAlias[column.SystemType.FullName] %> _<%= StringUtil.ToPascalCase(column.Name) %>;
public <%= CSharpAlias[column.SystemType.FullName] %> <%= StringUtil.ToPascalCase(column.Name) %>
{
get { return _<%= StringUtil.ToPascalCase(column.Name) %>; }
set { _<%= StringUtil.ToPascalCase(column.Name) %> = value; }
}
#endregion <%= StringUtil.ToPascalCase(column.Name) %>
<% } %>
亜音速/ロブ・コネリーはRepositoryを生成するためのツールとしてT4の使用に関するブログました。 T4はVS 2005 SDKにあり、VS 2008にネイティブです。
Visual Studio DataSetデザイナーもこれを実行できます。これは、データベースオブジェクトを非常に簡単に囲むクラスを生成します。アプリケーションに新しいDataSetを追加するだけです。
私はLINQにまだ飛び込んでいませんが、私は実際にそれらをすべて手動で入力するプロパティコードを生成したいと思っていました...しかし、私はあなたの提案をしてすぐに実行しているので、 。 – mccrager
これは、生成されるのは単なるクラスのコレクションなので、LINQ/Lambda型の機能を高速化していなくても、これらのコレクションを使用して通常の方法で繰り返し使用できます。 –