.NET 6中Oracle连接字符串如何指定数据库名称?
Oracle EF连接字符串指定数据库的正确方法
你尝试的Initial Catalog属性在Oracle的连接字符串中是不生效的,需要用以下方式指定目标数据库:
- 如果是Oracle 12c及以上的多租户环境(CDB/PDB架构),直接在
Data Source中替换为目标PDB的服务名即可,示例代码:protected override void OnConfiguring(DbContextOptionsBuilder options){ options.UseOracle(@"Data Source=sampleip:port/目标PDB服务名;User Id=sample; Password=sample;") } - 若使用传统的SID标识数据库,将
Data Source中的斜杠改为冒号,后跟目标SID,示例代码:protected override void OnConfiguring(DbContextOptionsBuilder options){ options.UseOracle(@"Data Source=sampleip:port:目标SID;User Id=sample; Password=sample;") }
另外,部分Oracle驱动版本支持直接通过Database属性指定,写法如下:
protected override void OnConfiguring(DbContextOptionsBuilder options){ options.UseOracle(@"Data Source=sampleip:port;User Id=sample; Password=sample;Database=目标数据库名;") }
不过最稳妥的方式还是通过Data Source中的服务名或SID指定目标数据库,这是Oracle连接字符串的标准用法。
内容的提问来源于stack exchange,提问作者Kavi Arshan
相关产品推荐
相关产品推荐

