Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# OracleException:ORA-01918:user';dbo';不存在_C#_Oracle_Entity Framework - Fatal编程技术网

C# OracleException:ORA-01918:user';dbo';不存在

C# OracleException:ORA-01918:user';dbo';不存在,c#,oracle,entity-framework,C#,Oracle,Entity Framework,尝试使用EntityFramework 6连接到远程oracle db时出现此错误。我见过类似的问题 但我的模式名实际上是小写的(connection==schema,对吗?)-我与Oracle SQL developer进行了检查。我的连接字符串 数据源= (说明= (地址=(协议=TCP)(主机=srvhost)(端口=1521)) (连接数据)= (服务器=专用) (服务名称=cmmd) ) );持久安全信息=True;用户ID=usr;密码=pwd;最大池大小=40;增量池大小=1;de

尝试使用EntityFramework 6连接到远程oracle db时出现此错误。我见过类似的问题 但我的模式名实际上是小写的(connection==schema,对吗?)-我与Oracle SQL developer进行了检查。我的连接字符串

数据源= (说明= (地址=(协议=TCP)(主机=srvhost)(端口=1521)) (连接数据)= (服务器=专用) (服务名称=cmmd) ) );持久安全信息=True;用户ID=usr;密码=pwd;最大池大小=40;增量池大小=1;decrpool Size=1

所以这个代码没有帮助

builder.HasDefaultSchema("ORACLE"); // error ORA-01918: user 'ORACLE' does not exist

builder.HasDefaultSchema("oracle"); // error ORA-01918: user 'oracle' does not exist
编辑1:

公共类OracleDbContext:DbContext { public OracleDbContext():base(新OracleConnection(Tools.GetConnectionString()),true) { } 模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder) { MapMonitoringObject(modelBuilder); } 公共数据库集监视对象{get;set;} 专用void MapMonitoringObject(DbModelBuilder生成器) { //builder.HasDefaultSchema(“”); } }
事实证明,“模式”意味着用户,因为它存储在dba_用户中。所以我查询了它,选择了一个,添加到HasDefaultSchema中,错误消失了(但现在返回null)。我真的试图找到Oracle术语中“模式”的含义,但它很容易与“数据库”概念混淆

在Oracle模式中=用户。尝试
builder.hasdaultschema(“”)@IvanStoev,现在我得到一个错误“值不能为null。参数名seq owner”。不确定它是否更好。@IvanStoev如果它很重要,我正在尝试从dbOracleDbContext=new OracleDbContext()读取一个值;var query=context.MonitoringObjects.FirstOrDefault()@脾气暴躁的Android用户/模式在Oracle中是同义词。User是您登录时使用的帐户,schema是该用户拥有的对象的集合-基本上是
public class OracleDbContext : DbContext
{
    public OracleDbContext() : base(new OracleConnection(Tools.GetConnectionString()), true)
    {

    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        MapMonitoringObject(modelBuilder);
    }

    public DbSet<MonitoringObject> MonitoringObjects { get; set; }

    private void MapMonitoringObject (DbModelBuilder builder)
    {
        //builder.HasDefaultSchema("");
    }

}