ASP.NET应用中Entity Framework EDMX未同步新连接字符串问题
针对你遇到的EDMX刷新后仍指向旧数据库架构的问题,除了已尝试的步骤外,可以按以下方法排查解决:
检查EDMX内部的连接配置
右键EDMX文件,选择「打开方式」→「XML(文本)编辑器」,查找<ConnectionString>节点,确认其中的initial catalog是否为新数据库名称。如果不是,手动修改为新库名后保存,再重新刷新模型。
或者直接在EDMX设计器空白处右键→「属性」,查看「连接字符串」属性,确认指向的是新数据库,若错误则重新选择正确的数据库连接。清理项目缓存文件
- 右键项目→「清理」,清除编译生成的临时文件;
- 手动删除项目根目录下的
obj和bin文件夹,这两个目录可能缓存了旧的模型元数据; - 重新生成项目后,再尝试刷新EDMX模型。
验证服务器资源管理器的连接
打开Visual Studio的「服务器资源管理器」,找到关联的数据库连接,确认它指向的是新数据库。如果存在旧的连接,右键删除后重新创建指向新库的连接,再用这个新连接执行「从数据库更新模型」操作。手动指定更新范围并刷新
右键EDMX设计器→「从数据库更新模型」,在弹出的窗口中:- 确认选择的是新数据库的连接;
- 找到新增列的那张表,选择「刷新」选项(而非「添加」),确保覆盖旧的表结构;
- 如果刷新无效,可以先从EDMX模型中删除该表,再重新从数据库添加,强制同步最新结构。
确认EF连接字符串的正确性
检查web.config中Entity Framework专用的连接字符串(带有providerName="System.Data.EntityClient"的条目),确保其provider connection string部分的initial catalog是新数据库名称,示例正确格式:<add name="MyEntities" connectionString="metadata=res://*/MyModel.csdl|res://*/MyModel.ssdl|res://*/MyModel.msl;provider=System.Data.SqlClient;provider connection string="data source=SERVER_NAME;initial catalog=NEW_DATABASE;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />重置Visual Studio组件缓存
关闭Visual Studio,删除%LOCALAPPDATA%\Microsoft\VisualStudio\<你的VS版本号>\ComponentModelCache目录下的缓存文件,重新打开VS加载项目后再尝试刷新EDMX。
内容的提问来源于stack exchange,提问作者PixelScribe

