gpt4 book ai didi

asp.net - 使用 SqlMetal 和 Visual Studio 时自动生成 DataContext 设计器文件

转载 作者:行者123 更新时间:2023-12-02 18:51:15 25 4
gpt4 key购买 nike

我正在使用SqlMetal使用 LinqToSql 为我的 ASP.net 应用程序通用我的 DataContext.dbml 类。当我最初创建 DataContext.dbml 文件时,Visual Studio 使用它来创建相关的 DataContext.designer.cs 文件。此设计器文件包含 C# 中的 DataContext 类,该类在整个应用程序中使用(并且派生自 dbml 文件中的 XML),对于弥合 SqlMetal 的输出和通过 LinqToSql 使用 DataContext 之间的差距至关重要。

但是,当我更改数据库并重新创建 dbml 文件时,设计器文件永远不会在我的网站中重新生成。相反,旧的设计器文件将被保留(因此无法通过 LinqToSql DataContext 类访问对 DBML 文件的任何更改)。

到目前为止,我能够用来重新生成设计器文件的唯一过程是

  1. 转到 Windows 资源管理器并删除 dbml 和 Designer.cs 文件
  2. 转到 Visual Studio 并在解决方案资源管理器中单击“刷新”。 dbml 和 Designer.cs 文件现在从项目中消失。
  3. 使用 SqlMetal 重新生成 dbml 文件
  4. 转到 Visual Studio 并在解决方案资源管理器中单击“刷新”。现在,designer.cs 文件已重新创建。

看来 Visual Studio 只会在检测到尚不具有 Designer.cs 文件的新 dbml 文件时才生成 Designer.cs 文件。这个过程非常不切实际,因为它涉及几个手动步骤,并且会弄乱源代码控制。

有谁知道如何自动重新生成 Designer.cs 文件,而无需遵循上述手动删除/刷新/重新生成/删除过程?

最佳答案

当您在 Visual Studio 中更改 DBML 时,designer.cs 文件通常会自动维护。如果重新创建 DBML 时 VS 没有运行,它可能不知道。

检查 Visual Studio 中的 .DBML 文件是否将“自定义工具”属性设置为 MSLinqToSQLGenerator。如果不是,则将其设置为该值。如果是,请尝试在进行更改后右键单击 DBML,然后选择“运行自定义工具”以查看是否会更新 .designer.cs。

您还可以使用 SqlMetal 生成类文件:

sqlmetal /code:DataContext.designer.cs /language:csharp DataContext.dbml

关于asp.net - 使用 SqlMetal 和 Visual Studio 时自动生成 DataContext 设计器文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/133515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com