我使用SqlMetal来为我的ASP.NET.net应用程序使用LinqToSql将DataContext.dbml类泛化。当我最初创建DataContext.dbml文件时,Visual Studio使用它来创建相关的DataContext.designer.cs文件。这个设计器文件包含整个应用程序使用的C#中的DataContext类(并且源自dbml文件中的XML),对于弥合SqlMetal的输出和使用DataContext与LinqToSql之间的差距至关重要。使用SqlMetal和Visual Studio时DataContext设计器文件的自动生成
但是,当我对数据库进行更改并重新创建dbml文件时,设计器文件永远不会在我的网站中重新生成。而是维护旧的设计器文件(因此,无法通过LinqToSql DataContext类访问DBML文件的更改)。
我已经能够使用至今再生设计文件的唯一进程是
- 转到Windows资源管理器,同时删除DBML和designer.cs文件
- 转到Visual Studio和打刷新解决方案资源管理器。 dbml和designer.cs文件现在从项目中消失。
- 使用SqlMetal重新生成dbml文件
- 转到Visual Studio并在解决方案资源管理器中点击刷新。现在重新创建designer.cs文件。
似乎Visual Studio只会在检测到一个尚未包含designer.cs文件的新dbml文件时生成designer.cs文件。这个过程是非常不切实际的,因为它涉及几个手动步骤,并通过源代码控制来解决问题。
有没有人知道我可以自动重新生成designer.cs文件,而无需遵循上面列出的手动删除/刷新/再生/删除过程?
感谢道格,这就是我一直在寻找。它不断创建一个重复的设计器文件,并且让我感到无法接受。 这解决了我的问题。 – AceCorban 2014-01-23 21:02:15