ADO.NET Data provider per Entity Framework
Una delle domande che ricevo più spesso, riguarda la disponibilità di provider per EF che abilitino al supporto ai vari DBMS disponibili in commercio.
Da oggi vi consiglio questa pagina su MSDN come riferimento e dove potete trovare i link alle diverse società di terze parti che realizzano/stanno realizzando tali provider:
- Devart (Oracle, MySQL, PostgreSQL)
- Phoenix Software Solutions (SQLite)
- Npgsql (PostgreSQL)
- OpenLink Software
- Sybase SQL Anywhere (Sybase)
- IBM (DB2, Informix)
Ovviamente per SQL Server non avete bisogno di provider, perchè lo trovate già con l’installazione di ADO.NET Entity Framework presente nella SP1 di .NET 3.5.
Potete vedere una sessione su ADO.NET Entity Framework a questo link.
-Pietro
Comments
Anonymous
February 13, 2009
Ragazzi, avete provato ad usare questi provider? In azienda stiamo usando in produzione da mesi il provider di DevArt e francamente non ci sentiremmo di consigliare l'adozione di EF a coloro che dovessero sviluppare applicazioni non destinate ad utilizzare SQL Server. IMVHO segnalare in questa sede il suddetto provider rischia di creare delle aspettative destinate a rimanere insoddisfatte... .AAnonymous
February 13, 2009
Ciao Andrea, grazie della segnalazione. Quali tipi di problemi hai riscontrato ? Hai provato a segnalare i problemi a DevArt. Ad ogni modo, molti sono scaricabili in trial e quindi valutabili nel proprio contesto, in alternativa si è liberi di valutare altre soluzioni, diverse da Entity Framework.Anonymous
February 14, 2009
Problemi? Uno su tutti: randomicamente il provider scatena eccezioni al momento della chiusura di una transazione. Problema:
- segnalato a DevArt
- (più o meno) negato da DevArt
- riprodotto da noi con un sample di 30 righe di codice, e quindi riconosciuto da DevArt
- in attesa di risoluzione da parte di DevArt Se vuoi avere un quadro preciso della situazione, cerca i ns post (a nome di Roberto Messora) nel forum di supporto di DevArt. Più in generale, stiamo usando il loro provider da giugno 2008 e, nonostante gli aggiornamenti quasi mensili, non ha ancora raggiunto una stabilità paragonabile a quella del provider per SQL Server. Ed è proprio questo il messaggio: probabilmente EF non è ancora fruibile con soddisfazione per la gestione di database non SQL Server e Microsoft dovrebbe prestare maggiore attenzione alla qualità dei driver di terze parti che segnala, onde evitare agli adopter pericolose disillusioni .A
Anonymous
February 14, 2009
Beh, per quanto riguarda DevArt, quindi, rimaniamo in attesa della loro soluzione.Anonymous
June 03, 2009
Salve, grazie mille per la segnalazione. Io però ho provato ad usare Devart sul mio sito e, finchè lancio il programma dal mio pc(Io uso Visual Studio 2008) è tutto ok, quando però provo a pubblicare il mio sito sul server (Window server 2008) mi da un errore che ho segnalato a devart ma che non sono riusciti a rislovere. Considerate che sul mio sito per il momento c'è solo un gridview che usa come source un entity model creato con l'oggetto devart. Ma niente, si riesce a pubblicare ma poi da errore. Ora proverò Virtuoso, che dite?? Avrò gli stessi problemi? Saluti, Silvia Terzi.Anonymous
June 04, 2009
Ciao Silvia, sulla macchina con WIN 2008 devi installare, magari l'hai fatto, .NET 3.5 SP1. Nel caso prova a madarmi l'errore che vedo di capiere meglio: pietrobr@microsoft.comAnonymous
June 04, 2009
The comment has been removedAnonymous
December 10, 2009
Ciao, sto sviluppando un EF provider fper DB2 custom, con fw 3.5sp1 e VS2008. Ho usato gli EF samples trovati sui blog ADO.NET blogs (in particolare quello di Jaroslaw Kowalski) come riferimento. Il provider eregistrato e tutto quanto, viene visto da VS2008; ho modificato i file ssdl ed xml per adattarli a DB2 UDB. Ho un errore quando cerco di usare il provider per generare un modello: il problema e
in una UNION ALL generata da VS dove le liste di colonne in 2 select statemen parte della UNION ALL non sono identiche: SELECT CAST(0 AS int) AS "C1", "Extent5"."Id" AS "Id" ... UNION ALL SELECT CAST(9 AS int) AS "C1", "Project4"."C1" AS "C2" Questo eparte della subselect UnionAll2 . LA subselect viene referenziata in altri vincoli usando "UnionAll2"."Id" e qui arriva l'errore:in DB2 se specifico 2 alias name differenti per il "nome collettivo" nella UNION ALL, il nome non e
piucollettivo (Id e
differente da C2...) Dove posso mettere mano al codice per capire dove correggere questa anomalia? Grazie