Вы не должны смешивать ASP.NET MVC с какой-то определенной технологией доступа к данным.Вы должны абстрагировать его в слой DAL.Например:
public interface IProductsRepository
{
Product Get(int id);
}
и затем контроллер:
public class ProductsController: Controller
{
private readonly IProductsRepository _repository;
public ProductsController(IProductsRepository repository)
{
_repository = repository;
}
public ActionResult Index(int id)
{
var product = _repository.Get(id);
return View(product);
}
}
, тогда у вас может быть реализация этого репозитория продуктов, которая будет специфична для базы данных Oracle:
public class ProductsRepositoryOracle: IProductsRepository
{
... Oracle specific data access code
you could either use an ORM such as NHibernate, EF, ... or
plain ADO.NET with the ODP.NET provider. It's really an implementation
detail that has no impact on the MVC application.
}
Тогда все, что осталось, - это настроить вашу инфраструктуру DI для передачи реализации репозитория Oracle в контроллер.
Таким образом ваше приложение ASP.NET MVC полностью отделено от места, откуда поступают данные.