You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置SDK风格C#项目实现EDMX保存时自动生成类

解决SDK风格C#项目中EDMX保存后自动触发T4模板生成的问题

Visual Studio 2022对SDK风格C#项目确实没有原生支持EDMX文件保存后自动运行关联T4模板的功能,不过可以通过以下两种方案实现需求:

方案一:修改项目文件添加自定义构建目标

在项目的.csproj文件中添加自定义构建目标,监听EDMX文件的变化,在构建时自动触发TT模板的生成工具。将以下代码添加到<Project>标签内:

<Target Name="AutoRunT4OnEdmxChange" BeforeTargets="BeforeBuild">
  <!-- 匹配项目中所有EDMX文件 -->
  <ItemGroup>
    <EdmxFiles Include="**/*.edmx" />
    <!-- 关联对应的TT模板文件 -->
    <TtFiles Include="%(EdmxFiles.Directory)%(EdmxFiles.Filename).tt" />
    <TtFiles Include="%(EdmxFiles.Directory)%(EdmxFiles.Filename).Context.tt" />
  </ItemGroup>
  <!-- 调用VS的命令行工具运行T4生成器 -->
  <Exec Command="&quot;$(DevEnvDir)devenv.com&quot; &quot;$(ProjectPath)&quot; /runtool:TextTemplatingFileGenerator &quot;@(TtFiles)&quot;" />
</Target>

说明:

  • 这个目标会在项目构建前执行,自动遍历所有EDMX文件并运行对应的实体、上下文TT模板。
  • 无需额外安装工具,团队成员同步项目文件即可生效,但触发时机为构建阶段,而非EDMX保存的瞬间。

方案二:使用Visual Studio扩展实现实时触发

安装支持自动触发T4模板的VS扩展,比如Auto T4或T4 Toolbox,这类扩展可以监听文件保存事件,当EDMX文件被修改保存后,自动执行TT模板的Run custom tool操作。

说明:

  • 可以实现EDMX保存后立即生成代码的实时效果,但需要团队所有成员的Visual Studio都安装对应扩展,确保开发环境一致。

内容的提问来源于stack exchange,提问作者user221592

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 11:13:28