2009-04-23 73 views
1

使用Visual Studio .NET 2008或2005,有没有办法为SQL Server数据库表中的每一列自动生成属性?有没有办法从SQL Server数据库自动创建属性?

我假设其他代码生成软件存在,将这样做。我知道与Visio我可以连接到我的数据库,它会生成按表格,这将是类似的。

回答

2

LINQ2SQL在.NET 3.5(VS2008)是你在找什么。

添加LINQ2SQL DBML文件到您的解决方案/项目

创建与服务器资源管理器

拖动到数据库的连接,并删除表/视图/存储过程

代码生成是为你做。 ..(和它的该死的:) :)

+0

我还没有跳进LINQ,我真的希望它只是生成属性代码,以手动保存所有的输入......但我的建议已经启动并且运行得很快,所以也许是时候跳到这里了。 – mccrager 2009-04-23 14:33:10

1

mygeneration真的很酷,也可以让你创建自己的模板,给你很多矿石的力量来生成数据访问,实体类等“常用”类。

1

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) %> 
<% } %> 
0

亚音速/罗布康纳利在博客有关使用T4作为产生Repository的工具。 T4在VS 2005 SDK中,并且是VS 2008的原生代码。

0

Visual Studio DataSet设计器也可以为您完成此操作。它生成的类很容易包装数据库对象。只需将一个新的DataSet添加到您的应用程序。