Diskuze: MVC praca s Oracle databazou

C# .NET .NET (C# a Visual Basic) MVC praca s Oracle databazou American English version English version

Avatar
myxall17
Člen
Avatar
myxall17:

Ahojte,
v MVC som uplny zaciatocnik. Pokusam sa vytvorit si web aplikaciu a potrebujem sa pripajat na Oracle db.
Ma s tym niekto skusenosti?
Pouzivam VS 2010 a nainstaloval som si ODAC (12.1.0.1.2), vytvoril databazu, ale nedari sa mi z web stranky nacitat data z tabulky.
Neviem aky connectionString pripadne providerName mam pouzit. Ked pouzijem providerName System.Data.O­racleClient, pri funkcii

public ActionResult Index()
         {
             return View(db.MyArticles.ToList());
         }

dostanem exception

System.Data.ProviderIncompatibleException: A null was returned after calling the 'get_ProviderFactory' method on a store provider instance of type 'System.Data.OracleClient.OracleConnection'. The store provider might not be functioning correctly.

a ked pouzijem

Oracle.DataAccess.Client

dostanem exception

Oracle.DataAccess.Client.OracleException: ORA-00942: table or view does not exist

i ked tabulka v DB existujem

connectionString je

connectionString="Data Source=10.197.122.13:1521/XE;Persist Security Info=True;User ID=ordb;PASSWORD=1234"

Neviete kde robim chybu?

 
Odpovědět 9.6.2014 9:52
Avatar
Milan Křepelka
Redaktor
Avatar
Odpovídá na myxall17
Milan Křepelka:

To druhý řešení už vypadá funkční. Zkusil bych udělat to samé připojení na databázi v server exploreru a ověřit jestli ten uživatel na ty tabulku vidí - má na to právo. Případně bych ověřil jestli problém nemůže být s cAse sEnsItiVitY.

 
Nahoru Odpovědět 9.6.2014 11:04
Avatar
myxall17
Člen
Avatar
myxall17:

Dakujem za reakciu.
Skusil som sa pripojit na db cez Server Explorer a tam mi to funguje, zobrazim si tabulku a tiez udaje v tabulke, ale cez web to stale vyhadzuje rovnaku exception. Robil som tiez experimenty s case sensitivitou ale ani to nepomohlo.

 
Nahoru Odpovědět 9.6.2014 14:00
Avatar
Milan Křepelka
Redaktor
Avatar
Odpovídá na myxall17
Milan Křepelka:

On by ti měl ukázat v properties toho připojení jaký on sám používá provider a jaký connection string a to bych zkusil okopírovat.

 
Nahoru Odpovědět 9.6.2014 14:29
Avatar
myxall17
Člen
Avatar
myxall17:

Provider je ODP.NET, Managed Driver a connectionString som mal rovnaky, az na ten password, ten som mal navyse v mojom connectionStringu. Skusil som update EntityFramework na verziu 6.0 a je to este horsie ako predtym...

No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.OracleClient'. Make sure the provider is registered in the 'entityFramework' section of the application config file.
 
Nahoru Odpovědět 9.6.2014 14:49
Avatar
myxall17
Člen
Avatar
myxall17:

Tak nakoniec som spravil downgrade EF z verzie 6 na verziu 5, pričom som dostal opäť chybu ORA-00942 ale túto chybu som odstránil tým, že som v DbContexte ohandloval nalsedovnú funkciu:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
   modelBuilder.Entity<MyProduct>().ToTable("MYPRODUCTS", "TEST");
}

ešte upozorním, že v mojom prípade museli byť všetky názvy (tabuliek, stĺpcov a schémy) v kóde veľkými písmenami.

 
Nahoru Odpovědět 20.6.2014 8:10
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.