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

保存EF6模型(关系图)时遇FormatException错误求助

EF6模型保存时System.FormatException错误的解决方法

问题描述

保存Visual Studio中的EF6模型(对应.tt模板文件)时触发以下错误,导致自动生成的模型文件无法更新或创建,只能手动处理表结构变更:

Severity    Code    Description Project File    Line    Suppression State
Error       Running transformation: System.FormatException: Index (zero based) must be greater than or equal to zero and less than the size of the argument list.
   at System.Text.StringBuilder.AppendFormatHelper(IFormatProvider provider, String format, ParamsArray args)
   at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args)
   at System.String.Format(IFormatProvider provider, String format, Object[] args)
   at Microsoft.VisualStudio.TextTemplating2E969E7BB7507C0E92F45D70D6AE734916F1C3683B5A0611CF49C10204F34C69B4F2034763B4DA31B0F0721B51B303513DC99B843477A989AB522BF93554EA49.GeneratedTextTransformation.TypeMapper.VerifyCaseInsensitiveTypeUniqueness(IEnumerable`1 types, String sourceFile)
   at Microsoft.VisualStudio.TextTemplating2E969E7BB7507C0E92F45D70D6AE734916F1C3683B5A0611CF49C10204F34C69B4F2034763B4DA31B0F0721B51B303513DC99B843477A989AB522BF93554EA49.GeneratedTextTransformation.TransformText() NT-LLB.AzureSqlDb   C:\Users\lars.hermansen\source\repos\NT-AZURE\NT-LLB.AzureSqlDb\AzureSqlModel.tt    1   

错误原因

该错误源于EF6模板生成器的TypeMapper.VerifyCaseInsensitiveTypeUniqueness方法中存在字符串格式化参数不匹配的问题,通常是数据库中存在大小写不同但名称完全一致的表、视图或列(例如User和user),触发校验逻辑时触发了格式化bug。

解决步骤

  • 排查数据库对象:检查数据库中是否存在大小写重复的表、视图或列,重命名这类对象以消除名称冲突。
  • 修复模板代码:若无法修改数据库,可手动编辑.tt模板文件:
    1. 打开AzureSqlModel.tt文件
    2. 搜索VerifyCaseInsensitiveTypeUniqueness方法
    3. 找到方法内的string.Format语句,核对格式化字符串的占位符数量与传入参数数量是否匹配,调整至两者一致;若需临时应急,可注释掉该校验方法的调用(不推荐长期使用)。
  • 清理重建项目:删除已生成的模型.cs文件,执行项目清理后重新保存.edmx文件触发代码生成。
  • 更新EF6版本:将EntityFramework NuGet包更新至最新稳定版,修复可能存在的版本bug。

内容的提问来源于stack exchange,提问作者Lars Grieg Hermansen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 04:05:40