У меня есть несколько служб, написанных на PHP, которые я перевожу на .NET. Я пытался использовать WCF и веб-API для подключения к моей базе данных Oracle и получения информации из этой базы данных, возможно ли выполнить запрос прямо из веб-приложения или как правильно это сделать? Вот запрос, который я пытаюсь выполнить:
select t2.meternumber, t1.blinkdate, t1.blinkcount
from
(select * from cecc_processed_blinks where trunc(blinkdate) between to_date(?, 'dd-mon-yy') and to_date(?, 'dd-mon-yy')) t1
left join meteraccts t2 on t1.serialnumber = t2.serialnumber
where t2.meternumber = ?
order by t1.blinkdate desc
На данный момент я подключен к своей базе данных Oracle, но не могу найти много документации по внедрению Oracle в .NET или, по крайней мере, понимаю, что я неопытный разработчик C #.
Вы можете использовать Oracle Managed ODP.NET адаптер.
Последняя версия имеет поддержку EF6, которая должна дать вам именно то, что вам нужно.
Вы можете установить его прямо из командной строки nuget с помощью следующей команды:
Install-Package odp.net.managed
Если вы используете Visual Studio, откройте консоль диспетчера пакетов Nuget и введите следующую команду:
Install-Package odp.net.managed
https://www.nuget.org/packages/odp.net.managed/
После этого это очень легко. Добавьте операторы using:
using Oracle.DataAccess.Client; // ODP.NET Oracle managed provider
using Oracle.DataAccess.Types;
Тогда сделайте запрос …..
string oradb = "Data Source=ORCL;User Id=hr;Password=hr;";
OracleConnection conn = new OracleConnection(oradb); // C#
conn.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "select * from some table";
cmd.CommandType = CommandType.Text;
OracleDataReader dr = cmd.ExecuteReader();
dr.Read();
string text = dr.GetString(0);
conn.Dispose();