Visual Studio 2019从Firebird数据库更新EF模型找不到数据源
解决方案
- 首先核对NuGet包版本兼容性,你安装的
EntityFramework.Firebird v7.10.1必须搭配同版本的FirebirdSQL.Data.FirebirdClient,如果FirebirdClient版本不匹配先降级/升级到对应版本,避免版本冲突。 - 检查项目配置文件(App.config/Web.config)的节点配置,确保以下内容正确添加:
- 实体框架提供程序配置,在
<entityFramework>节点下新增:
<providers> <provider invariantName="FirebirdSql.Data.FirebirdClient" type="EntityFramework.Firebird.FbProviderServices, EntityFramework.Firebird" /> </providers>- 数据库驱动工厂配置,在
<system.data>节点下新增(如果没有<system.data>节点就手动创建):
<DbProviderFactories> <remove invariant="FirebirdSql.Data.FirebirdClient" /> <add name="FirebirdClient Data Provider" invariant="FirebirdSql.Data.FirebirdClient" description=".NET Framework Data Provider for Firebird" type="FirebirdSql.Data.FirebirdClient.FirebirdClientFactory, FirebirdSql.Data.FirebirdClient" /> </DbProviderFactories> - 实体框架提供程序配置,在
- 确认Firebird客户端位数适配,VS2019是32位程序,你需要将32位版本的
fbclient.dll放到系统C:\Windows\SysWOW64目录,64位版本放到C:\Windows\System32目录,避免DDEX provider找不到客户端库。 - 清空VS组件缓存解决加载异常:关闭所有VS窗口,打开路径
%LocalAppData%\Microsoft\VisualStudio\16.0_xxxx\ComponentModelCache(16.0开头的文件夹对应VS2019版本),删除该文件夹下所有内容后重启VS,重新尝试添加实体模型。 - 若以上操作后仍无法找到数据源,可以改用Code First from Database的方式生成实体模型,该方式对DDEX组件的依赖更低,可正常完成实体和上下文的生成。
内容的提问来源于stack exchange,提问作者Tippi
相关产品推荐
相关产品推荐

