sqlmetal 代码生成工具 简单介绍

008-04-25 08:35

SqlMetal 命令行工具可为 .NET Framework 的 LINQ to SQL 组件生成代码和映射。通过应用本主题后面出现的选项,可以指示 SqlMetal 执行若干种不同的操作,其中包括:

  • 从数据库生成源代码和映射属性或映射文件。

  • 从数据库生成供自定义使用的中间数据库标记语言 (.dbml) 文件。

  • 从 .dbml 文件生成代码和映射属性或映射文件。

默认情况下, SQLMetal 文件位于 drive:"Program Files"Microsoft SDKs"Windows"vn.nn"bin 下。

sqlmetal [options] [<input file>]
选项

若要查看最新的选项列表,请从安装位置的命令提示符处键入 sqlmetal /? 。

连接选项

选项

说明

/server: <名称>

指定数据库服务器名称。

/database: <名称>

指定服务器上的数据库目录。

/user: <名称>

指定登录用户 ID。默认值: 使用 Windows 身份验证。

/password: <密码>

指定登录密码。默认值:使用 Windows 身份验证。

/conn: <连接字符串>

指定数据库连接字符串。不能与 /server/database/user/password 选项一起使用。

请勿在连接字符串中包括文件名。而是应将文件名作为输入文件添加到命令行中。例如,下行命令将“c:"northwnd.mdf”指定为输入文件:sqlmetal /code:"c:"northwind.cs" /language:csharp "c:"northwnd.mdf"

/timeout: <秒>

指定 SqlMetal 访问数据库时的超时值。默认值:0(即没有时间限制)。

提取选项

选项

说明

/views

提取数据库视图。

/functions

提取数据库函数。

/sprocs

提取存储过程。

输出选项

选项

说明

/dbml [:文件]

以 .dbml 扩展名发送输出。不能与 /map 选项一起使用。

/code [:文件]

以源代码形式发送输出。不能与 /dbml 选项一起使用。

/map [:文件]

生成 XML 映射文件而不是属性。不能与 /dbml 选项一起使用。

杂项

选项

说明

/language: <语言>

指定源代码语言。

有效的 <语言> 包括:vb、csharp。

默认值:从代码文件的扩展名派生。

/namespace: <名称>

为生成的代码指定命名空间。默认值:无命名空间。

/context: <类型>

指定数据上下文类的名称。默认值:从数据库名称派生。

/entitybase: <类型>

为生成的代码中的实体类指定基类。默认值:实体没有基类。

/pluralize

自动为类和成员名称应用复数或单数形式。

此选项只在(美国)英文版中可用。

/serialization: <选项>

生成可序列化的类。

有效的 <选项> 包括:None、Unidirectional。默认值: None。

有关更多信息,请参见序列化 (LINQ to SQL)

输入文件

选项

说明

<input file>

指定 SQL Server Express .mdf 文件、SQL Server Compact 3.5 .sdf 文件或 .dbml 中间文件。

备注

SqlMetal 功能实际涉及两个步骤:

  • 将数据库的元数据提取到一个 .dbml 文件中。

  • 生成一个代码输出文件。

    通过使用适当的命令行选项,可以生成 Visual Basic 或 C# 源代码,也可以生成 XML 映射文件。

若要从 .mdf 文件中提取元数据,必须在所有其他选项后指定 .mdf 文件的名称。

如果未指定 /server,则假定为 localhost/sqlexpress

如果存在下列一种或多种情况,Microsoft SQL Server 2005 将引发异常:

  • SqlMetal 尝试提取进行自我调用的存储过程。

  • 存储过程、函数或视图的嵌套级别超过 32。

    SqlMetal 将捕获此异常并将其报告为警告。

若要指定一个输入文件名,请将该名称作为输入文件添加到命令行。不支持在连接字符串中包括文件名(使用 /conn 选项)。

生成一个包含提取的 SQL 元数据的 .dbml 文件:

sqlmetal /server:myserver /database:northwind /dbml:mymeta.dbml

使用 SQL Server Express 生成一个包含从 .mdf 文件中提取的 SQL 元数据的 .dbml 文件:

s qlmetal /dbml:mymeta.dbml mydbfile.mdf

生成一个包含从 SQL Server Express 中提取的 SQL 元数据的 .dbml 文件:

sqlmetal /server:."sqlexpress /dbml:mymeta.dbml /database:northwind

基于 .dbml 元数据文件生成源代码:

sqlmetal /namespace:nwind /code:nwind.cs /language:csharp mymetal.dbml

直接基于 SQL 元数据生成源代码:

sqlmetal /server:myserver /database:northwind /namespace:nwind /code:nwind.cs /language:csharp

posted on 2008-07-13 01:44  neil-zhao  阅读(333)  评论(0编辑  收藏  举报

导航