Využij akce až 30 % zdarma při nákupu e-learningu. Více informací. Zároveň je tento týden sleva až 80 % na e-learning týkající se C# .NET
Hledáme nového kolegu do redakce - 100% home office, 100% flexibilní pracovní doba. Více informací.
discount week 30 halloween
Avatar
Neaktivní uživatel:9.6.2014 9:52

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
Neaktivní uživatelský účet
Avatar
Milan Křepelka
Redaktor
Avatar
Odpovídá na Neaktivní uživatel
Milan Křepelka:9.6.2014 11:04

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
Neaktivní uživatel:9.6.2014 14:00

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
Neaktivní uživatelský účet
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Milan Křepelka
Redaktor
Avatar
Odpovídá na Neaktivní uživatel
Milan Křepelka:9.6.2014 14:29

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
Neaktivní uživatel:9.6.2014 14:49

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
Neaktivní uživatelský účet
Avatar
Neaktivní uživatel:20.6.2014 8:10

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
Neaktivní uživatelský účet
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.