我正在使用SqlMetal为使用 LinqToSql 的 ASP.net 应用程序通用我的 DataContext.dbml 类。当我最初创建 DataContext.dbml 文件时,Visual Studio 使用它来创建相关的 DataContext.designer.cs 文件。此设计器文件包含 C# 中的 DataContext 类,该类在整个应用程序中使用(并且从 dbml 文件中的 XML 派生),对于弥合 SqlMetal 的输出和使用带有 LinqToSql 的 DataContext 之间的差距至关重要。
但是,当我对数据库进行更改并重新创建 dbml 文件时,设计器文件永远不会在我的网站中重新生成。而是保留旧的设计器文件(因此对 DBML 文件的任何更改都不能通过 LinqToSql DataContext 类访问)。
到目前为止,我能够用来重新生成设计器文件的唯一过程是
- 转到 Windows 资源管理器并删除 dbml 和 Designer.cs 文件
- 转到 Visual Studio 并在解决方案资源管理器中点击刷新。dbml 和 Designer.cs 文件现在从项目中消失了。
- 使用 SqlMetal 重新生成 dbml 文件
- 转到 Visual Studio 并在解决方案资源管理器中点击刷新。现在重新创建了 Designer.cs 文件。
似乎 Visual Studio 只会在检测到新的 dbml 文件但还没有 Designer.cs 文件时才会生成 Designer.cs 文件。这个过程非常不切实际,因为它涉及几个手动步骤,并且会弄乱源代码控制。
有谁知道我如何可以自动重新生成 Designer.cs 文件,而无需遵循上述手动删除/刷新/重新生成/删除过程?