我试图用EntityFramework 6连接到远程oracle时遇到了这个错误。我看到了类似的问题Oracle.ManagedDataAccess.EntityFramework - ORA-01918: user 'dbo' does not exist,但是我的模式名实际上是小写的(连接==模式,对吗?)--我用Oracle检查了它。我的连接线
数据源= (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =srvhost)(端口= 1521)) (CONNECT_DATA = (SERVER =专用) (SERVICE_NAME = cmmd) );
所以这段代码没有帮助
builder.HasDefaultSchema("ORACLE"); // error ORA-01918: user 'ORACLE' does not exist
builder.HasDefaultSchema("oracle"); // error ORA-01918: user 'oracle' does not exist

编辑1:
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("");
}
}发布于 2018-03-28 13:56:02
事实证明,"schema“是指用户,因为它存储在dba_users中。因此,我查询了它,选择了一个,添加到HasDefaultSchema中,错误就消失了(但现在返回null )。我确实试图找出“模式”在Oracle术语中的含义,但它很容易与“数据库”概念混淆。
https://stackoverflow.com/questions/49532538
复制相似问题