sqlMetal 的用法
SqlMetal是跟随VS发布的一个自动工具,可以用来生成数据库的Linq代码。
这是中文版的帮助文件。
SqlMetal [选项] [<输入文件>]
为 .NET Framework 的 LINQ to SQL 组件生成代码和映射。SqlMetal 能够:
- 依据数据库生成源代码及映射属性或映射文件。
- 依据数据库生成中间 dbml 文件以进行自定义。
- 依据 dbml 文件生成代码及映射属性或映射文件。
选项:
/server:<名称> 数据库服务器名称。
/database:<名称> 服务器上的数据库目录。
/user:<名称> 登录用户 ID (默认值: 使用 Windows 身份验证)。
/password:<密码> 登录密码(默认值: 使用 Windows 身份验证)。
/conn:<连接字符串> 数据库连接字符串。不能将连接字符串与 /server、/database、/user 或 /password 选项一起使用。
/timeout:<秒数> 要在 SqlMetal 访问数据库时使用的超时值(默认值: 0,表示无限期)。
/views 提取数据库视图。
/functions 提取数据库函数。
/sprocs 提取存储过程。
/dbml[:文件] 输出为 dbml。不能与 /map 选项一起使用。
/code[:文件] 输出为源代码。不能与 /dbml 选项一起使用。
/map[:文件] 生成映射文件而不是属性。不能与 /dbml 选项一起使用。
/language:<语言> 源代码语言: VB 或 C# (默认值: 派生自代码文件名的扩展名)。
/namespace:<名称> 生成的代码的命名空间(默认值: 无命名空间)。
/context:<类型> 数据上下文类的名称(默认值: 派生自数据库名称)。
/entitybase:<类型> 生成的代码中的实体类的基类(默认值: 实体没有基类)。
/pluralize 使用英语语言规则自动设置类和成员名称的单复数形式。
/serialization:<选项> 生成可序列化的类: None 或 Unidirectional (默认值: None)。
/provider:<类型> 提供程序类型: SQLCompact、SQL2000、SQL2005 或 SQL2008。(默认值: 提供程序是在运行时确定的)。
<输入文件> 可以是 SqlExpress mdf 文件、SqlCE sdf 文件或 dbml 中间文件。
通过 SqlServer 创建代码:
SqlMetal /server:myserver /database:northwind /code:nwind.cs /namespace:nwind
通过 SqlServer 生成中间 dbml 文件:
SqlMetal /server:myserver /database:northwind /dbml:northwind.dbml /namespace:nwind
通过 dbml 生成包含外部映射的代码:
SqlMetal /code:nwind.cs /map:nwind.map northwind.dbml
通过 SqlCE sdf 文件生成 dbml:
SqlMetal /dbml:northwind.dbml northwind.sdf
通过 SqlExpress 本地服务器生成 dbml:
SqlMetal /server:sqlexpress /database:northwind /dbml:northwind.dbml
通过在命令行中使用连接字符串生成 dbml:
SqlMetal /conn:"server='myserver'; database='northwind'" /dbml:northwind.dbml
例子: 生成包含存储过程的Dbml文件
C:temp>sqlmetal /server:localhost /database:tsx /dbml:tsx.dbml /namespace:tsx /sprocs
IF $(ConfigurationName) == VO "%PROGRAMFILES%\Microsoft SDKs\Windows\v6.0A\Bin\sqlmetal"
/server:DETIAN-SCL07H66 /database:test /user:sa /password:hello /dbml:$(ProjectDir)LinqData\DAO.dbml /sprocs /functions /entitybase:System.Data.Linq.DataContext
IF $(ConfigurationName) == VO "%PROGRAMFILES%\Microsoft SDKs\Windows\v6.0A\Bin\sqlmetal"
/namespace:LinqData /code:$(ProjectDir)LinqData\DAO.designer.cs /language:csharp /context:DAODataContext
/entitybase:System.Data.Linq.DataContext /serialization:Unidirectional $(ProjectDir)LinqData\DAO.dbml