VB.NET依赖注入添加Oracle DBContext时UseOracle方法缺失问题
VB.NET中EF Core无法识别UseOracle扩展方法的解决办法
- 必须显式导入命名空间
Oracle.EntityFrameworkCore的扩展方法位于Oracle.EntityFrameworkCore命名空间下,VB.NET不会自动导入第三方库的命名空间,需要在Global.asax.vb文件顶部添加:
Imports Oracle.EntityFrameworkCore
确保NuGet包版本匹配
Oracle.EntityFrameworkCore的版本必须和项目中Microsoft.EntityFrameworkCore的主版本完全一致(比如EF Core 6对应Oracle EF Core 6.x系列),版本不兼容会导致扩展方法无法被编译器识别。注意VB.NET的Lambda语法
VB.NET的Lambda写法和C#不同,配置DbContext的正确语法是:
services.AddDbContext(Of MyDbContext)(Sub(options) options.UseOracle(connString) End Sub)
不要使用C#的=>箭头语法,VB.NET用Sub/Function块定义匿名方法。
- 验证NuGet包安装目标
确认Oracle.EntityFrameworkCore是安装在当前正在配置的项目中,而非解决方案内的其他项目。可以通过右键项目→管理NuGet包,检查已安装列表。
内容的提问来源于stack exchange,提问作者ExpRick
相关产品推荐
相关产品推荐

