任何人都可以轻松地在Visual Studio中执行此操作,而无需使用服务器资源管理器?
我也试过看宏,但只记录产生
Sub TemporaryMacro()
End Sub
那里没有运气。
以任何方式编写脚本吗?
答案 0 :(得分:3)
我正在使用类似于此的批处理脚本来管理基础表/视图更改时模型的更新。使用它:
Generate.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
说明:
答案 1 :(得分:2)
有一个很好的实用程序可以帮助您从数据库更新现有的DBML文件:Huagati DBML/EDMX tools。
它不是免费的,但值得为任何严肃的Linq-to-SQL开发投资。
唯一的选择是自己编写 - 读取数据库结构并将其与DBML中的XML表示进行比较,并根据需要更新DBML。
答案 2 :(得分:2)
SqlMetal Include对我来说就像一个魅力。 首先使用SqlMeta创建一个完整的dbml文件 - Say testComplete.dbml
现在提供此文件作为SqlMetaInclude的输入 SqlMetalInclude /dbml:"testComplete.dbml“/output:"testSubSet.dbml”/include:dbo.SampleTable1=SampleTable1,dbo.SampleTable2=SampleTable2
请注意,此工具包含一个GUI,可以处理整个过程。