Я искал в Интернете и просматривал похожие вопросы о переполнении стека, но не могу понять, как использовать поставщик управляемых данных Oracle с DbContext из консольного приложения C # .Net 4.6.
Это работает для SqlExpress
class SqlDBContext1 : DbContext
{
public SqlDBContext1() : base("SqlExpressDB")
{
using (var ctx = this)
{ var query = from c_codes in ctx.CountryCodes select c_codes; }
}
public DbSet<CountryCode> CountryCodes { get; set; }
}
И это работает для подключения к удаленному серверу Sql, используя строку подключения
class SqlDBContext2 : DbContext
{
public SqlDBContext2() : base(SqlServerString())
{
using (var ctx = this)
{ var query = from c_codes in ctx.CountryCodes select c_codes; }
}
public DbSet<CountryCode> CountryCodes { get; set; }
private static string SqlServerString()
{
return @"Data Source=192.168.0.1;" +
"Initial Catalog=SqlDB1; " +
"Persist Security Info=True; " +
"User ID=USER1; " +
"Password=PASS1";
}
}
Я могу подключиться к Oracle из Visual Studio 2017 и проверил строку подключенияиспользуя стандартный OracleConnection, он открывается и закрывается, без проблем.
С этим в APP.CONFIG
<oracle.manageddataaccess.client>
<version number="*">
<dataSources>
<dataSource alias="ORCL1" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL1))) "/>
</dataSources>
</version>
</oracle.manageddataaccess.client>
<connectionStrings>
<add name="ORCL1DB" providerName="Oracle.ManagedDataAccess.Client" connectionString="User Id=USER1;Password=PASS1;Data Source=ORCL1"/>
</connectionStrings>
Можно ли использовать что-то подобное?Если это так, что входит в базовый конструктор DbContext?
class OraDBContext : DbContext
{
public OraDBContext() : base("What goes here")
{
using (var ctx = this)
{ var query = from c_codes in ctx.CountryCodes select c_codes; }
}
public DbSet<CountryCode> CountryCodes { get; set; }
}
Ни один из примеров, которые я нашел в работе с переполнением стека, различные ошибки, из которых «Тип инициализатора вызвал исключение», является наиболее популярным.