我使用webapi模板创建了一个具有dotnet核心的项目。我正在尝试使用Citms.EntityFrameworkCore.Oracle软件包将API与Oracle数据库连接,因为官方软件包不是免费的。但是每次我启动API时,都会遇到以下错误
context.Set<TEntity>();
GenericRepository.cs
public GenericRepository(ApplicationDbContext context)
{
this.Context = context;
this.DbSet = context.Set<TEntity>();
}
错误:
System.MissingMethodException: 'Method not found: 'Void Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommandBuilderFactory..ctor(Microsoft.EntityFrameworkCore.Diagnostics.IDiagnosticsLogger`1<Command>,
启动文件
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
services.AddDbContext<ApplicationDbContext>(options =>
{
//options.UseMySql(Configuration.GetConnectionString("DefaultConnection"));
options.UseOracle(@"DATA SOURCE = <CONNECTION_STRING>");
});
services.AddSwagger();
//services.AddScoped<IValuesRepository, ValuesRepository>();
services.AddScoped<IValueService, ValueService>();
var corsBuilder = new CorsPolicyBuilder();
corsBuilder.AllowAnyHeader();
corsBuilder.AllowAnyMethod();
corsBuilder.AllowAnyOrigin();
corsBuilder.AllowCredentials();
services.AddCors(options =>
{
options.AddPolicy("SiteCorsPolicy", corsBuilder.Build());
});
}
那是您使用的程序包中的错误,它使用已被修改的内部Entity Framework代码,现在不再正常工作。
请参阅Pomelo.EntityFrameworkCore.MySql包的类似问题,EF开发人员在其中响应:
@AdamDotNet感谢您举报。发生这种情况是因为MySQL提供程序正在使用EF Core内部代码-我为此提交了此问题:PomeloFoundation / Pomelo.EntityFrameworkCore.MySql#497
从EF方面,我们将分流讨论是否将此更改恢复为内部代码,但是从长远来看,解决方案是提供者停止使用内部代码。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句