我使用 Linq2Sql,并且厌倦了每次数据库更改时都重新创建 dbml。考虑到我想要所有表和所有过程,是否可以编写模型的创建脚本?理想情况下,它将是构建过程或自定义工具的一部分。
一个简单的“从模式刷新”按钮也可以,但据我所知,没有这样的事情。目前,我必须更新我的模型的唯一方法是删除已更改的表和过程,然后从服务器资源管理器中重新拖动它们。
也许我错过了什么?
我使用 Linq2Sql,并且厌倦了每次数据库更改时都重新创建 dbml。考虑到我想要所有表和所有过程,是否可以编写模型的创建脚本?理想情况下,它将是构建过程或自定义工具的一部分。
一个简单的“从模式刷新”按钮也可以,但据我所知,没有这样的事情。目前,我必须更新我的模型的唯一方法是删除已更改的表和过程,然后从服务器资源管理器中重新拖动它们。
也许我错过了什么?
我想你可以使用SQLMetal命令工具
由 OP 编辑:我最终编写了一个批处理文件来签出代码,用它生成类,然后提交代码。然后,我创建了一个数据库架构更改级别触发器,以便在架构更改时运行此批处理文件。因此,现在,当架构更改时,Linq 类被创建、签入,然后 CCNet 创建 DLL 并分发它。甜的......
如果钱不是问题,最好的办法是获取Visual Studio 2008团队系统的数据建模版,创建一个数据库项目并用它来维护数据库、数据模型和实体模型。保持数据库和实体模型同步并不是零工作,但是使用模式比较工具,它离它不远(它肯定会为你完成所有苦差事)。
恕我直言,数据建模和设计往返证明购买 Visual Studio 2008 团队版的成本高于专业版。
SQLMetal
http://msdn.microsoft.com/en-us/library/bb386987(v=vs.110).aspx
SqlMetal 命令行工具为 .NET Framework 的 LINQ to SQL 组件生成代码和映射。SqlMetal 可以执行多种不同的操作,包括:
从数据库中,生成源代码和映射属性或映射文件。
从数据库生成中间数据库标记语言 (.dbml) 文件以进行自定义。
从 .dbml 文件生成代码和映射属性或映射文件。
此工具随 Visual Studio 自动安装。
SQLMetalPlus
可以在 Visual Studio 中使用刷新按钮自动生成 .dbml 的项目。
http://www.codeproject.com/Articles/37198/SqlMetalPlus-A-VS-Add-in-to-Manage-Custom-Changes
SQLMetalPlus 在 Github 上分叉
包括预建的安装程序。