首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有ef代码的blazor应用程序中的Oracle连接字符串

带有ef代码的blazor应用程序中的Oracle连接字符串
EN

Stack Overflow用户
提问于 2022-10-07 13:33:04
回答 1查看 106关注 0票数 0

我有一个带有Oracle数据库的Blazor服务器项目。当我尝试使用连接时

代码语言:javascript
复制
"ConnectionStrings": {
"GTravelDbConnection": "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVER=dedicated)(SERVICE_NAME=XE)));User Id=GTRAVEL;  Password=cteam;"

在appsettings.json中并在program.cs中使用以下代码

代码语言:javascript
复制
var builder = WebApplication.CreateBuilder(args);

var connectionString = builder.Configuration.GetConnectionString("GTravelDbConnection");
builder.Services.AddDbContext<GTravelDbContext>(
    options => options.UseOracle(connectionString)
);

我知道错误了

未为此DbContext配置数据库提供程序。可以通过重写“DbContext.OnConfiguring”方法或在应用程序服务提供程序上使用“AddDbContext”来配置提供程序。如果使用“AddDbContext”,那么还要确保DbContext类型在其构造函数中接受DbContextOptions对象,并将其传递给DbContext的基本构造函数。

如果从dbcontext类中使用相同的连接字符串

代码语言:javascript
复制
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    if (!optionsBuilder.IsConfigured)
    {
        optionsBuilder.UseOracle("Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVER=dedicated)(SERVICE_NAME=XE)));User Id=GTRAVEL;  Password=cteam;");  
    }
}

工作没有问题。

如果有人能帮助我,我将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2022-10-11 09:50:27

问题是,我试图在不创建作用域的情况下使用范围服务。当我在program.cs中使用以下代码时

代码语言:javascript
复制
var builder = WebApplication.CreateBuilder(args);

var connectionString = builder.Configuration.GetConnectionString("GTravelDbConnection");
builder.Services.AddDbContext<GTravelDbContext>(
     options => options.UseOracle(connectionString)
     
     );
builder.Services.AddScoped<ICustomerService, CustomerService>();
using (var serviceScope = app.Services.CreateScope())
{
    var services = serviceScope.ServiceProvider;
    var customerService = services.GetRequiredService<ICustomerService>();
}

一切都很完美。

谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73987965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档