任何人都可以在 Visual Studio 中轻松执行此操作,而无需使用服务器资源管理器?
我也尝试查看宏,但录制仅产生
Sub TemporaryMacro()
End Sub
所以没有运气。
有什么办法编写这个脚本吗?
我正在使用与此类似的批处理脚本来在基础表/视图更改时管理模型的更新。使用方法:
- 有 SQLMetal 和SQL金属包含 http://sqlmetalinclude.codeplex.com/(您可能必须从源代码下载并构建)可从当前目录(或路径中)访问
- 创建一个文件“chosenEntities.txt”,每行包含一个表/视图名称。这些表将是唯一为其生成代码的表。
- 修改、保存并执行Generate.bat批处理代码
- (可选)将 .bat 文件作为外部运行工具添加到 Visual Studio,如下所述here https://stackoverflow.com/questions/6414788/how-can-i-add-a-custom-command-to-visual-studio
生成.bat:
sqlmetal /conn:"Data Source={Hostname};Initial Catalog={DBName};User ID={Username};Password={Password}" /dbml:temp.dbml /views
setlocal EnableDelayedExpansion
set file=chosenEntities.txt
set include=
FOR /F %%i IN (%file%) DO (
set include=!include!%%i,
)
set include=%include:~0,-1%
sqlmetalinclude -dbml:temp.dbml -output:ChosenEntities.dbml -include:%include%
sqlmetal /context:CustomDataContext /pluralize /namespace:MyNamespace.DB /language:csharp /code:DBEntities.cs /entitybase:DBEntityBase ChosenEntities.dbml
selectedEntities.txt 示例:
Accounts
Customers
PRODUCTS_VIEW
AnotherTable
解释:
- 中间 .dbml 文件像往常一样由 sqlmetal 生成。创建的 dbml 文件包含数据库中每个表的定义(以及视图,如果选择)
- 下一个代码块循环遍历 selectedEntities.txt,并为每一行附加行内容(表名称)和逗号“,”
- 最后一个尾随逗号被删除
- 运行 sqlmetalinclude,这基本上会生成原始 temp.dbml 文件的副本,但仅包含您指定的表。还有其他可用选项,例如转换单个表名称
- sqlmetal 第二次运行,这次根据缩减的 .dbml 文件生成实际的 .cs 代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)